使用PreG_Match()匹配多行的PHP验证



我有以下代码段,我想在其中匹配用户提供的输入以匹配正则表达式中指定的其他其他输入。一切正常,但是 n部分,我想允许多行。

尤其是不起作用的。
if(preg_match("/[^A-Za-z0-9., /-n]/", $addr))
    {
    echo "Invalid user input  ";
    exit;
    }

我收到消息

Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 17 in ......

朋友告诉我如何在这里允许多行。

您应该使用

[^A-Za-z0-9., /n-]

作为n之前的-,创建一个无效的范围( - 文本范围不超出顺序问题)。

如果要允许多行,只需删除n

[^A-Za-z0-9., /-]

您可以在以下方面使用m(Multiline)修饰符..

preg_match("/[^A-Za-z0-9., /-]/m", $addr)
                                ^

最新更新