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:无效的正则表达式:/ * /:无需重复
任何人都可以帮助我吗? :)
答案 0 :(得分:0)
您需要转义这些特殊字符,但您可以像
一样编写它
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);
&#13;
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;