vocales test regular que patron para metodo insertar hace expresion especiales caracteres caracter cadena buscar javascript string-split

javascript - regular - patron test



¿Cómo divido una cadena, rompiendo un carácter en particular? (11)

Tengo esta cuerda

''john smith~123 Street~Apt 4~New York~NY~12345''

Usando JavaScript, ¿cuál es la forma más rápida de analizar esto?

var name = "john smith"; var street= "123 Street"; //etc...


Algo como:

var divided = str.split("/~/"); var name=divided[0]; var street = divided[1];

Probablemente va a ser más fácil


Aunque esta no es la forma más sencilla, puedes hacer esto:

var addressString = "~john smith~123 Street~Apt 4~New York~NY~12345~", keys = "name address1 address2 city state zipcode".split(" "), address = {}; // clean up the string with the first replace // "abuse" the second replace to map the keys to the matches addressString.replace(/^~|~$/g).replace(/[^~]+/g, function(match){ address[ keys.unshift() ] = match; }); // address will contain the mapped result address = { address1: "123 Street" address2: "Apt 4" city: "New York" name: "john smith" state: "NY" zipcode: "12345" }

Actualización para ES2015, utilizando desestructuración.

const [address1, address2, city, name, state, zipcode] = addressString.match(/[^~]+/g); // The variables defined above now contain the appropriate information: console.log(address1, address2, city, name, state, zipcode); // -> john smith 123 Street Apt 4 New York NY 12345


Bueno, la forma más fácil sería algo como:

var address = theEncodedString.split(/~/) var name = address[0], street = address[1]


Con la función String.prototype.split de JavaScript:

var input = ''john smith~123 Street~Apt 4~New York~NY~12345''; var fields = input.split(''~''); var name = fields[0]; var street = fields[1]; // etc.


De acuerdo con ECMAScript6 ES6 , la forma limpia es destruir matrices:

const input = ''john smith~123 Street~Apt 4~New York~NY~12345''; const [name, street, unit, city, state, zip] = input.split(''~''); console.log(name); // john smith console.log(street); // 123 Street console.log(unit); // Apt 4 console.log(city); // New York console.log(state); // NY console.log(zip); // 12345

Es posible que tenga elementos adicionales en la cadena de entrada. En este caso, puede usar el operador de descanso para obtener una matriz para el resto o simplemente ignorarlos:

const input = ''john smith~123 Street~Apt 4~New York~NY~12345''; const [name, street, ...others] = input.split(''~''); console.log(name); // john smith console.log(street); // 123 Street console.log(others); // ["Apt 4", "New York", "NY", "12345"]

Supuse una referencia de solo lectura para valores y usé la declaración const .

Disfruta de ES6!


No necesitas jQuery.

var s = ''john smith~123 Street~Apt 4~New York~NY~12345''; var fields = s.split(/~/); var name = fields[0]; var street = fields[1];


Puedes usar split para dividir el texto.

Como alternativa, también puede utilizar la match como sigue

var str = ''john smith~123 Street~Apt 4~New York~NY~12345''; matches = str.match(/[^~]+/g); console.log(matches); document.write(matches);

La expresión regular [^~]+ coincidirá con todos los caracteres excepto ~ y devolverá las coincidencias en una matriz. A continuación, puede extraer las coincidencias de él.


Si se encuentra Spliter entonces solo

Dividirlo

de lo contrario devuelve la misma cadena

function SplitTheString(ResultStr) { if (ResultStr != null) { var SplitChars = ''~''; if (ResultStr.indexOf(SplitChars) >= 0) { var DtlStr = ResultStr.split(SplitChars); var name = DtlStr[0]; var street = DtlStr[1]; } } }


Usa este código ------

function myFunction() { var str = "How are you doing today?"; var res = str.split("/"); }



Zach tenía este derecho ... usando su método, también podría hacer una matriz aparentemente "multidimensional" ... Creé un ejemplo rápido en JSFiddle http://jsfiddle.net/LcnvJ/2/

// array[0][0] will produce brian // array[0][1] will produce james // array[1][0] will produce kevin // array[1][1] will produce haley var array = []; array[0] = "brian,james,doug".split(","); array[1] = "kevin,haley,steph".split(",");