【发布时间】:2015-10-25 00:06:21
【问题描述】:
我的正则表达式有问题。我确定有些东西没有正确转义。
function regex(str) {
str = str.replace(/(~|`|!|@|#|$|%|^|&|*|\(|\)|{|}|\[|\]|;|:|\"|'|<|,|\.|>|\?|\/|\\|\||-|_|+|=)/g,"")
document.getElementById("innerhtml").innerHTML = str;
}
<div id="innerhtml"></div>
<p><input type="button" value="Click Me" onclick="regex('test @ . / | ) this');">
【问题讨论】:
-
为什么不采用白名单的方式,只匹配字母数字字符?
-
我需要统计所有重音字符,所以不知道如何处理白名单方法。
-
@blasko 白名单方法会更慢。
-
我可以看到
{}*+....顺便说一句str.replace(/[~\!@#$%^&*()\{\}[] ;:"'\?\/\\\|\-_\+=]+/g,"")` 似乎有效 - 不确定哪个更容易阅读 -
@Daniel 为什么不尝试逃避一切,逃避并没有什么坏处。
标签: javascript regex