无效的正则表达式:没有重复错误

Invalid Regular Expression: Nothing to Repeat Error

我正在尝试制作一个应用程序来计算每个字符在给定字符串中出现的次数。因此,例如,在字符串 "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 之前在其前面添加反斜杠。

希望对您有所帮助。