ejemplo cortar cadena array javascript php string

cortar - Javascript equivalente a PHP Explode()



split javascript ejemplo (16)

Tengo una cadena que se parece a esto:

0000000020C90037: TEMP: datos

Y necesito agarrar todo después del primer colon, para que tenga TEMP: data.

No trabajo a menudo en Javascript, si fuera PHP haría esto:

$str = ''0000000020C90037:TEMP:data''; $arr = explode(":", $str); $var = $arr[1].":".$arr[2];


Entonces, sé que esta publicación es bastante antigua, pero pensé que también podría agregar una función que me haya ayudado a lo largo de los años. ¿Por qué no simplemente rehacer la función explotar usando split como se mencionó anteriormente? Pues aquí está:

function explode(str,begin,end) { t=str.split(begin); t=t[1].split(end); return t[0]; }

Esta función funciona bien si está intentando obtener los valores entre dos valores. Por ejemplo:

data=''[value]insertdataherethatyouwanttoget[/value]'';

Si estaba interesado en obtener la información entre las dos "etiquetas" de [valores], podría usar la función como la siguiente.

out=explode(data,''[value]'',''[/value]''); //Variable out would display the string: insertdataherethatyouwanttoget

Pero digamos que no tiene esas "etiquetas" útiles como el ejemplo anterior mostrado. No importa.

out=explode(data,''insert'',''wanttoget''); //Now out would display the string: dataherethatyou

¿Wana lo ve en acción? Haga click here


Esta es una conversión directa de su código PHP:

//Loading the variable var mystr = ''0000000020C90037:TEMP:data''; //Splitting it with : as the separator var myarr = mystr.split(":"); //Then read the values from the array where 0 is the first //Since we skipped the first element in the array, we start at 1 var myvar = myarr[1] + ":" + myarr[2]; // Show the resulting value console.log(myvar); // ''TEMP:data''




Prueba esto:

arr = str.split (":");


Si quieres definir tu propia función, prueba esto:

function explode (delimiter, string, limit) { if (arguments.length < 2 || typeof delimiter === ''undefined'' || typeof string === ''undefined'') { return null } if (delimiter === '''' || delimiter === false || delimiter === null) { return false } if (typeof delimiter === ''function'' || typeof delimiter === ''object'' || typeof string === ''function'' || typeof string === ''object'') { return { 0: '''' } } if (delimiter === true) { delimiter = ''1'' } // Here we go... delimiter += '''' string += '''' var s = string.split(delimiter) if (typeof limit === ''undefined'') return s // Support for limit if (limit === 0) limit = 1 // Positive limit if (limit > 0) { if (limit >= s.length) { return s } return s .slice(0, limit - 1) .concat([s.slice(limit - 1) .join(delimiter) ]) } // Negative limit if (-limit >= s.length) { return [] } s.splice(s.length + limit) return s }


Si te gusta php, echa un vistazo a php.JS - JavaScript explode

O en la funcionalidad normal de JavaScript: `

var vInputString = "0000000020C90037:TEMP:data"; var vArray = vInputString.split(":"); var vRes = vArray[1] + ":" + vArray[2]; `


Sin ninguna intención de criticar a , en caso de que el número de delimitadores varíe para cualquiera que use el código dado, sugeriría formalmente que use este ...

var mystr = ''0000000020C90037:TEMP:data''; var myarr = mystr.split(":"); var arrlen = myarr.length; var myvar = myarr[arrlen-2] + ":" + myarr[arrlen-1];


Solo una pequeña adición a la respuesta de psycho brm (su versión no funciona en IE <= 8). Este código es compatible con todos los navegadores:

function explode (s, separator, limit) { var arr = s.split(separator); if (limit) { arr.push(arr.splice(limit-1, (arr.length-(limit-1))).join(separator)); } return arr; }


Utilice String.split

"0000000020C90037:TEMP:data".split('':'')


prueba de esta manera,

ans = str.split (":");

Y puedes usar dos partes de la cadena como,

ans [0] y ans [1]


console.log((''0000000020C90037:TEMP:data'').split(":").slice(1).join('':''))

salidas: TEMP:data

  • .split () desensamblará una cadena en partes
  • .join () vuelve a ensamblar la matriz de nuevo a una cadena
  • cuando desee la matriz sin su primer elemento, use .slice (1)

crear es un objeto:

// create a data object to store the information below. var data = new Object(); // this could be a suffix of a url string. var string = "?id=5&first=John&last=Doe"; // this will now loop through the string and pull out key value pairs seperated // by the & character as a combined string, in addition it passes up the ? mark var pairs = string.substring(string.indexOf(''?'')+1).split(''&''); for(var key in pairs) { var value = pairs[key].split("="); data[value[0]] = value[1]; } // creates this object var data = {"id":"5", "first":"John", "last":"Doe"}; // you can then access the data like this data.id = "5"; data.first = "John"; data.last = "Doe";


String.prototype.explode = function (separator, limit) { const array = this.split(separator); if (limit !== undefined && array.length >= limit) { array.push(array.splice(limit - 1).join(separator)); } return array; };

Debe imitar la función de explosión de PHP exactamente.

''a''.explode(''.'', 2); // [''a''] ''a.b''.explode(''.'', 2); // [''a'', ''b''] ''a.b.c''.explode(''.'', 2); // [''a'', ''b.c'']


var str = "helloword~this~is~me"; var exploded = str.splice(~);

la variable explosionada devolverá la matriz y usted puede acceder a los elementos de la matriz accediendo a la verdadera explosión [nth] donde nth es el índice del valor que desea obtener


var str = ''0000000020C90037:TEMP:data''; // str = "0000000020C90037:TEMP:data" str = str.replace(/^[^:]+:/, ""); // str = "TEMP:data"