如何编写JavaScript正则表达式以仅允许字母和数字?

问题描述:

我希望允许大写和小写。我曾尝试如何编写JavaScript正则表达式以仅允许字母和数字?

'k abBcdi #!129'.replace(/^[A-Za-z0-9]/g,'') 

但它不给我正确的答案

+0

该模式将删除所有大写,小写和数字。 – hookedonwinter 2012-07-05 14:31:55

+0

ë也是一封信... – Quentin 2012-07-05 14:33:26

还可以使用[^ 0-9A-Z ]而是。它可能几乎没有性能影响,但它稍短而漂亮。

编辑:根据上面的评论,你是否试图找到所有的字母和数字,并将其替换或删除所有不是字母和数字的东西?

你需要使用NOT运算符(^)括号内:

/[^A-Za-z0-9]/g 

如果你不明确需要使用不^运营商,你可以简单地使用特殊字符,以确定所有非字母数字字符:

'k abBcdi #!129'.replace(/[\W]/g,'') 

或者,如果还\W允许下划线(_ ),它可能是最好使用:

'k abBcdi #!129'.replace(/(\W+)|(_)/g,'') 

参考文献: