/ / Podziel według białych znaków Z wyjątkiem słów kluczowych - javascript, tablice, łańcuch, split, białe znaki

Podzielone białymi literami Oprócz KeyWords - javascript, tablice, string, split, whitespace

Mam więc ciąg, który wygląda tak:

var sentence = "1 is less than 2";

Następnie mam tablicę ze słowami kluczowymi:

var array = ["is less than", "is bigger than"];

teraz chcę podzielić zdanie zmienne za pomocą białych znaków, ale ignorując słowa kluczowe:

var sentenceArray = ["1", "is less than" , "2"];

Wszelkie wskazówki, jak to zrobić?

Ok przykro mi, że wyglądam na leniwegopytanie, dlatego utworzyłem wyrażenie regularne z podziałem, którego można użyć do dopasowania zdania z wieloma ogranicznikami. Nic skomplikowanego, ale wygląda na czyste. Cieszyć się:

var sentence = "1 is less than 2 and 3";
var sentenceArray = [];
sentenceArray = sentence.split(/(is less than|and)/g);
alert(sentenceArray);

Odpowiedzi:

1 dla odpowiedzi № 1

Zakładając twoje array jest tablicą ciągów (pomijam te nawiasy klamrowe), możesz to zrobić w ten sposób:

var sentence = "1 is less than 2";
var array = ["is less than", "is bigger than"];
var sentenceArray = [];
for(var i in array){
var s = sentence.split(array[i]);
if(s[1]){
sentenceArray.push(s[0].trim());
sentenceArray.push(array[i]);
sentenceArray.push(s[1].trim());
break; // in case there are more than one unique delimiter in the array
}
}

console.log(sentenceArray);

Wydajność:

 ["1", "is less than", "2"]

1 dla odpowiedzi nr 2

Tu masz. Myślę, że mylisz się co do tablicy w JS.

var sentence = "1 is less than 2";
var array = ["is less than", "is bigger than"];
var result = [];
for (var i = 0; i < array.length; i++) {
if (sentence.indexOf(array[i]) > -1) {
result.push(array[i]);
var splitResults = sentence.split(array[i]);
for (var j = 0; j < splitResults.length; j++) {
result.push(splitResults[j]);
}
}
}
alert(result);

Mam nadzieję, że to pomoże.


0 dla odpowiedzi № 3

Podziel je na liczby

var sentence = "1 is less than 2";
var sentenceArray  = sentence.split(/(d+)/g).map(function(a){return a.trim()}).filter(function(a){return a;});
document.body.innerHTML = JSON.stringify(sentenceArray);