RegEx返回SyntaxError:无效正则表达式:/*/:不需要重复
RegEx returning SyntaxError: Invalid regular expression: /*/: Nothing to repeat
var unicode = ['!', '@', '%', '$', '#', '^', '&', '*', '(', ')', '-', '_', '+', '=', '{', '}', '[', ']', '''', '|', ':', ';', '''', '"', ',', '<', '>', '.', '/', '?', '~', '`'];
var removeunicode = "my message!!@!(@^!@&(*";
for (var i = 0; i < unicode.length; i++) {
removeunicode = removeunicode.replace(new RegExp(unicode[i], 'g'), "");
}
不知道这里有什么问题,看起来很好,基本上它把所有的unicode从我放的消息中剥离出来,RegExp似乎在和我乱搞,给了我
SyntaxError: Invalid regular expression:/*/: Nothing to repeat
有人能帮我吗?:)您需要转义这些特殊字符,但是您可以这样写
if (!RegExp.escape) {
RegExp.escape = function(value) {
return value.replace(/['-'[']{}()*+?.,'''^$|#'s]/g, "''$&")
};
}
var unicode = ['!', '@', '%', '$', '#', '^', '&', '*', '(', ')', '-', '_', '+', '=', '{', '}', '[', ']', '''', '|', ':', ';', '''', '"', ',', '<', '>', '.', '/', '?', '~', '`'];
var removeunicode = "my message!!@!(@^!@&(*";
var regex = new RegExp(unicode.map(function(val) {
return RegExp.escape(val);
}).join('|'), 'g');
removeunicode = removeunicode.replace(regex, "");
snippet.log(removeunicode);
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
相关文章:
- 需要正则表达式模式的帮助
- 使用不带正则表达式的jscript验证电子邮件地址
- 不使用正则表达式的字符串字数
- 需要正则表达式使文本在*bold之间
- 需要正则表达式的字符串约束数字与 javascript 中的起始字母 p
- 只允许整数和十进制数字textbow jquery(不带正则表达式)
- 如何在不使用正则表达式的情况下从 JavaScript 中的字符串中删除 HTML 标记
- 需要正则表达式的 unicode 支持
- 需要正则表达式来匹配网址
- 使用 javascript 查找文本中 HTML 标签的位置,最好不使用正则表达式
- 为什么这个JavaScript不能取代工作?(不包含正则表达式)
- 需要正则表达式在用冒号分隔之前和之后获取字符串
- JQuery/Javascript - 需要正则表达式来匹配多语言文本
- Javascript:如何不将正则表达式与BB代码混淆
- 仅包含有效字符的字符串,不带正则表达式
- 不使用正则表达式的表单密码验证
- 需要正则表达式以允许最多3个特殊字符
- 生成密码策略需要正则表达式
- 不带正则表达式的JavaScript titleCase函数
- 如何在不使用正则表达式的情况下使用javascript在数组中搜索字符串