除关键字外,按空格分隔
Split by whitespace Except KeyWords
所以我有一个看起来像这样的字符串:
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);
按数字拆分它们
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);
给你。我认为你对 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);
希望对您有所帮助。
假设您的 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"]
所以我有一个看起来像这样的字符串:
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);
按数字拆分它们
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);
给你。我认为你对 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);
希望对您有所帮助。
假设您的 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"]