我试图计算给定字符串中Regexp中通常保留的字符的出现。因此,例如,星号(*)是Regexp中的保留字符。因此,尽管我可以这样做:
var textareaId = document.getElementById("textareaId").value;
var occ = (textareaId.match(/i/g) || []).length;
alert(occ);
我不能这样做:
var textareaId = document.getElementById("textareaId").value;
var occ = (textareaId.match(/*/g) || []).length;
alert(occ);
我尝试使用等效于星号(\ u002A)的unicode,使用Regexp构造函数将星号转义,并将星号放入数组中,但似乎不匹配。当我直接将其放入变量occ时,总是会出现此错误:
Uncaught SyntaxError: Unexpected token *
这也适用于正则表达式中的所有其他保留字符(括号,括号,胡萝卜等)。
任何帮助将不胜感激。
最佳答案
您应使用反斜杠(\
)来使星号转义。
这是一个例子:
str = 'alskjdfalk*sdjf alksdjf* aljsdf01830*912838123*'
var occ = (str.match(/\*/g) || []).length;
console.log(occ);