【发布时间】:2017-08-27 12:55:53
【问题描述】:
我正在尝试制作一个应用程序来计算每个字符在给定字符串中出现的次数。例如,在字符串“hello 12355”中,它应该匹配所有超过 1 的数字,而不是“hello”部分。但是,当我尝试运行代码时,我在控制台中得到了这个:
“未捕获的 SyntaxError: 无效的正则表达式: /?/: 没有可重复的 在新的正则表达式 ()"
但是,当我将 xy 更改为超过 92 的任何值时,代码运行良好。根据我所读到的有关此错误的信息,这意味着您必须对某些字符加双反斜杠,因为它们在正则表达式中意味着某些东西。但是,我不能在不影响所有 Unicode 值的情况下双反斜杠 Unicode 变量。有人可以帮忙吗?
这是我的代码:
var occArray = [];
var occChars = [];
var xy = 50;
for (i = xy; i < 100; i++) {
var unicodeChar = String.fromCharCode(i);
var counter = new RegExp(unicodeChar, 'g');
var occurence = "hello 12355";
var occ = (occurence.match(counter) || []).length;
occArray.push(occ);
occChars.push(unicodeChar);
}
alert(occArray);
alert(occChars);
【问题讨论】:
标签: javascript regex unicode counter