我似乎无法让它继续工作它继续返回null。我需要一种非常简单的方法来计算字符串中引号的数量。
var wtf = '"""'
var count = wtf.match(/"/g);
alert(count);
这也有同样的问题。
var count = tableitems[i].match(/\"/g);
alert(count);
答案 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