/ / Розділити по пробілам За винятком KeyWords - javascript, масиви, рядки, спліт, пробіли

Спліт за пробілами Крім KeyWords - javascript, масиви, рядок, спліт, пробіл

Отже, у мене є рядок, який виглядає приблизно так:

var sentence = "1 is less than 2";

Тоді у мене є масив з ключовими словами:

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

Тепер я хочу розділити змінне речення за допомогою пробілів, але ігноруючи ключові слова:

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

Будь-які підказки, як я можу це зробити?

Добре мені шкода, що це виглядало як лінивийпитання, отже, я зробив регулярний вираз із роздвоєнням, який можна використовувати для співставлення речення з кількома роздільниками. Нічого складного, але виглядає чисто. Насолоджуйтесь:

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

Відповіді:

1 для відповіді № 1

Припускаючи твій array це масив рядків (я пропускаю ці фігурні дужки), ви можете це зробити так:

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);

Вихід:

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

1 для відповіді № 2

Ось ви. Я думаю, ви помиляєтесь щодо масиву в 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);

Сподіваюсь, ця допомога.


0 для відповіді № 3

Розділіть їх на числа

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);