2010-09-10 22 views
0

我如何做一个正则表达式,将允许一切除了!@ $%^ & *()_ + = {} [] |:“;' <>,??/(如果我需要检测超过这些,我可以简单地将它们添加到正则表达式中吗?)正则表达式来检测几个非字符

我打算用这个来检查用户提交的邮政地址中是否存在这些字符。他们在那里,我可以拒绝该地址

感谢

+2

它看起来像你过滤掉所有的特殊字符你可以想到。你确定你不想去白名单(只允许指定的一组字符)吗? – grossvogel 2010-09-10 18:56:39

+0

其中特殊字符,我想允许 - # – Norman 2010-09-10 19:03:11

+0

另外,你应该考虑你是否真的需要禁止这些字符。毕竟,有人最终可能会有一个排除字符的地址。您可能只需要为数据库使用预准备语句并转义(例如,使用'htmlspecialchars')进行输出。 – 2010-09-10 19:04:19

回答

2

你应该包括允许的,而不是排除几乎所有的字符:

[\w+-]* 

但是,如果你想真正排除那些字符:

[^[email protected]$%^&*()_+={}\[\]|\:";'<>,.?/]* 

资源:

+0

所以,如果我想允许或禁止几个字符,我可以简单地从表达式中添加或删除它们。对? – Norman 2010-09-10 19:06:10

+0

是的,允许它们添加到第一个表达式中。如果你想删除使用第二个。 – 2010-09-10 19:07:58

相关问题