查找字符串中的字符,找到后将整个单词添加到数组中

时间:2019-06-12 08:51:46

标签: javascript

var arr = [];
var str='This is mWORDy word docuWORDment';

if (str.indexOf('WORD') > -1) {
  arr.push(Whole word here)
}

这可行,但是我需要将包含WORD的整个单词推入数组。

所以结果应该是这样:

arr['mWORDy','docuWORDment'];

我该怎么做?

3 个答案:

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