/ /キーワードを除く空白で分割-javascript、arrays、string、split、whitespace

空白で分割キーワード以外 - 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"]

回答№2の場合は1

はい、どうぞ。 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);

この助けを願っています。


回答№3の場合は0

それらを数字で分割する

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