使用正则表达式计算字符串中的引号数

时间:2013-06-26 23:44:56

标签: javascript regex

我似乎无法让它继续工作它继续返回null。我需要一种非常简单的方法来计算字符串中引号的数量。

var wtf = '"""'
var count = wtf.match(/"/g);
alert(count);

这也有同样的问题。

var count = tableitems[i].match(/\"/g);
alert(count);

3 个答案:

答案 0 :(得分:3)

match不会返回计数,而是返回匹配。你想要比赛的长度:

var wtf = '"""'
var matches = wtf.match(/"/g);
var count = matches ? matches.length : 0;

最后一行表示:“如果有匹配计数,如果没有,则返回零”

答案 1 :(得分:2)

在您的第一个示例中,count是匹配数组。要查看有多少,请执行

alert(count ? count.length : 0) // count is null if there are no matches

如果您考虑进行切换(:P),coffeescript可以很好地处理这种情况:

wtf = '"""'
count = wtf.match(/"/g)?.length;

如果没有匹配,则计数为undefined,否则为匹配数。

答案 2 :(得分:2)

你可以这样做:

const countDoubleQuotes = wtf => wtf.split('"').length - 1;

console.log(countDoubleQuotes('"')); // expected 1
console.log(countDoubleQuotes('"Hello world"')); // expected 2
console.log(countDoubleQuotes('"""')); // expected 3
console.log(countDoubleQuotes('_"_')); // expected 1