javascript - 无效的正则表达式 : Nothing to Repeat Error

标签 javascript regex unicode counter

我正在尝试制作一个应用程序来计算每个字符在给定字符串中出现的次数。因此,例如,在字符串“hello 12355”中,它应该与 1 之后的所有数字匹配,而不是与“hello”部分匹配。但是,当我尝试运行代码时,我在控制台中得到了这个:

“未捕获的语法错误:无效的正则表达式:/?/:无须重复 在新的 RegExp ()"

然而,当我将 xy 更改为任何大于 92 的值时,代码运行正常。从我读到的有关此错误的内容来看,这意味着您必须对某些字符加双反斜杠,因为它们在 Regexp 中具有某种含义。但是,我不能在不影响所有 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);

最佳答案

我认为这是因为您为 unicodeChar 传递的某些字符是 Regex 中的特殊字符(在您的错误中,它是 ? 是 63)。请考虑检测它是否是特殊字符,如果是,您可以在将其传递给 Regex 之前在其前面添加反斜杠。

希望这对你有帮助。

关于javascript - 无效的正则表达式 : Nothing to Repeat Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43171401/

相关文章:

javascript - Prestashop Smarty 电子邮件正则表达式验证

javascript - 除非存在 “escape” 字符,否则匹配;必须在线和背靠背工作

javascript - ReactJS Keydown 输入

javascript - 在 for 循环中修改对象(异步/等待)

javascript - 甜蜜警报语法

将 PSTR 转换为 PWSTR 并转义某些字符

unicode - 如何将 Unicode block 与语言/脚本相关联?

javascript - 在 meteor 中使用 Chart.js 我的图表未显示在浏览器屏幕上

php - 验证电子邮件地址和 URL?从 JavaScript 转换为 PHP

iphone - 如何检测 Unicode 字符是否映射到缺失符号方 block ?