我正在尝试返回一个字母出现在单词中的次数。
我将这封信传给了一个像这样的函数
function getCount(letter)
{
var pattern = '/' + letter + '/g';
var matches = word.match(pattern);
return matches.length;
}
不幸的是,匹配为空,所以我无法调用它的长度,我知道这个字母出现在我已经检查过的那个字上
word.indexOf(letter) > -1
我怀疑问题与我正在构建或评估pattern
答案 0 :(得分:8)
以下是构建非文字正则表达式的方法:
var pattern = new RegExp(letter, 'g');
请参阅the MDN on building a regular expression。
这里有一个更简单的解决方案来计算这封信的出现次数:
return word.split(letter).length-1;
答案 1 :(得分:2)
你可以这样做:
function hasClass(letter) {
var pattern = new RegExp(letter,'g'); // Create a regular expression from the string
var matches = word.match(pattern);
return matches;
参考:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp