var arr = [];
var str='This is mWORDy word docuWORDment';
if (str.indexOf('WORD') > -1) {
arr.push(Whole word here)
}
这可行,但是我需要将包含WORD的整个单词推入数组。
所以结果应该是这样:
arr['mWORDy','docuWORDment'];
我该怎么做?
答案 0 :(得分:4)
您可以split
句子,然后使用filter
过滤数组。使用includes
检查字符串是否包含某个单词。
var str = 'This is mWORDy word docuWORDment';
var arr = str.split(" ").filter(o => o.includes("WORD"));
console.log(arr);
答案 1 :(得分:2)
使用String.prototype.match()
和一个简单的正则表达式:
const str = 'This is mWORDy word docuWORDment';
const result = str.match(/\w*(WORD)\w*/g);
console.log(result);
答案 2 :(得分:1)
您可以使用this
正则表达式来捕获单词边界前后的一组匹配项,并将其推入数组。
const pattern = /\b([A-Za-z]+WORD[A-Za-z]+)\b/gm;
const str = `This is mWORDy word docuWORDment`;
let m;
let matchedArr = [];
while ((m = pattern.exec(str)) !== null) {
// Push the first captured group
matchedArr.push(m[1]);
}
console.log(matchedArr);