从字符串构建Javascript正则表达式

Luk*_*uke 2 javascript regex

我试图返回一个字母出现在一个单词中的次数.

我把这封信传递给了这样的函数

function getCount(letter)
{
    var pattern = '/' + letter + '/g';
    var matches = word.match(pattern);
    return matches.length;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是匹配是空的,所以我无法调用它的长度,我知道这个字母出现在我已经检查过的字样中

word.indexOf(letter) > -1
Run Code Online (Sandbox Code Playgroud)

我怀疑问题与我正在构建或评估的方式有关 pattern

Den*_*ret 8

以下是构建非文字正则表达式的方法:

var pattern = new RegExp(letter, 'g');
Run Code Online (Sandbox Code Playgroud)

有关构建正则表达式的信息,请参阅MDN.

这里有一个更简单的解决方案来计算这封信的出现次数:

return word.split(letter).length-1;
Run Code Online (Sandbox Code Playgroud)

  • 如果我能为替代解决方案提供+2,我会的.可悲的是,我只能提供+1. (3认同)
  • 它对我有用!''ergo'.split('e').长度 - 1; // 1` 无论如何,这是一个很好的解决方案. (2认同)