检查字符串js中2个字符串的出现次数

时间:2018-10-21 17:36:24

标签: javascript regex ecmascript-6

我正在寻找一个字符串中两个不同模式出现的次数。我正在寻找flyflies。我能够找到一个,但是不确定如何检查2个不同的字符串。

到目前为止,我的尝试是

const flyCount = str => {
   return (str.match(/fly/g) || str.match(/flies/g) || []).length;
}

2 个答案:

答案 0 :(得分:4)

  1. 合并正则表达式以找到两个单词。

注意:使用\b(单词边界)查找确切的单词。如果这些单词可以作为其他单词的一部分,请删除\b

const flyCount = str =>
   (str.match(/\b(?:fly|flies)\b/g) || []).length;

const result = flyCount('Look how he flies. He can fly');

console.log(result);

  1. 或获取每个表达式的长度并将其求和:

const flyCount = str =>
   (str.match(/\bfly\b/g) || []).length + (str.match(/\bflies\b/g) || []).length;

const result = flyCount('Look how he flies. He can fly');

console.log(result);

答案 1 :(得分:1)

这可以使用|正则表达式运算符来完成。您可能还需要考虑添加\b单词边界。

const flyCount = str => (str.match(/\b(?:fly|flies)\b/g) || []).length

console.log(flyCount('One fly, two flies'))