如何让下列正则表达式只接受我希望它接受的符号以及空格?这个正则表达式为什么不用空格?
if(!preg_match('/^[A-Z0-9\/\'&,.-]*$/', $line))
{
die();
}
else
{
//execute the rest of the validation script
}
我希望用户只能够进入A-Z,0-9,正斜杠,撇号,连字号,逗号,句号和连字符在给定的文本字段$线。
它目前会接受HAM-BURGER这个完美的东西,它应该接受。当用户想输入HAM BURGER时遇到问题(< - 注意空间)。
如果我从开头删除^和/或从结尾删除$,如果用户键入任何内容,它将成功。我尝试的补救措施是将*变成+,但只要用户至少放入一个可接受的字符,它就会接受任何东西。
或者,如果你想包括任何空白 - 包括空格或制表符 - 添加“\ S”字符代替空格。此外,您在结尾处使用*,这意味着它将匹配任意数量的这些字符 - 从0开始 - 因此空白字符串将匹配。 – 2010-09-30 18:16:11
@Bruno Obrigado,eu corrigi o problema。 – Confluence 2010-09-30 18:16:19
谢谢!我认为这很简单,我只是不希望它成为一个可怕的安全漏洞,这种做法令人不悦,或者即将被弃用的方法论。 – Eric 2010-09-30 18:37:44