0

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

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

这有同样的问题。

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

3 回答 3

3

match不返回计数但匹配本身。你想要你的比赛的长度:

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

最后一行的意思是:“如果有匹配,则计算它们,如果没有则返回零”

于 2013-06-26T23:48:08.940 回答
2

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

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

如果您正在考虑进行切换 (:P),coffeescript 有一个很好的方法来处理这种情况:

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

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

于 2013-06-26T23:47:52.110 回答
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

于 2013-06-26T23:48:27.973 回答