Отже, у мене є рядок, який виглядає приблизно так:
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);