Pregunta

Quiero dividir una cadena que puede tener este aspecto: palabra1; palabra2; word3, WORD4, word5, word6.word7. etc.

La cadena es de una salida que recibo de una página php que recoge datos de una base de datos por lo que la cadena puede tener un aspecto diferente, pero las primeras palabras siempre están separados por; y luego, y las últimas palabras con. (punto)

Quiero ser capaz de captar todas las palabras que terminan con, por ejemplo; O. en una matriz. ¿Alguien sabe cómo hacer esto?

También me gustaría saber cómo para ir a buscar sólo las palabras que termina con;

La función ends_with (cadena, carácter) por debajo de las obras, sino que se necesita sin tener en cuenta los espacios en blanco. Por ejemplo, si la palabra es Jonas arena, sólo se imprime la arena. Alguien sabe cómo solucionar este problema?

¿Fue útil?

Solución

Probablemente

var string = "word1;word2;word3,word4,word5,word6.word7";
var array = string.split(/[;,.]/);
// array = ["word1", "word2", "word3", "word4", "word5", "word6", "word7"]

La clave está en la expresión regular pasado al método String#split. El operador [] clase de caracteres permite la expresión regular para seleccionar entre los caracteres contenidos de la misma.

Si necesita dividir en una cadena que contiene más de un carácter, se puede utilizar el | diferenciar.

var array = string.split(/;|,|./) // same as above

Editar no leyó a fondo la cuestión. Algo como esto

var string = "word1;word2;word3,word4,word5,word6.word7";

function ends_with(string, character) {
  var regexp = new RegExp('\\w+' + character, 'g');
  var matches = string.match(regexp);
  var replacer = new RegExp(character + '$');
  return matches.map(function(ee) {
    return ee.replace(replacer, '');
  });
}
// ends_with(string, ';') => ["word1", "word2"]

Otros consejos

var myString = word1;word2;word3,word4,word5,word6.word7;
var result = myString.split(/;|,|./);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top