0

有谁知道为什么在这个正则表达式中:

$name ="abcdefABCDF12345àáâäãåèéêëìíîïòóôöõøùúûüÿ ýñçčšžÀÁÂÄÃÅ∂ð"$[]%&/()^*?¿¨_-{}:;,.Ç"

 if(!preg_match("[a-zA-Z0-9àáâäãåèéêëìíîïòóôöõøùúûüÿýñçčšžÀÁÂÄÃÅÈÉÊËÌÍÎÏÒÓÔÖÕØÙÚÛÜŸÝÑßÇŒÆČŠŽ∂ð &\.\'-_]+", $name))
{
//is also matching []/()^*?:;,
}

无论如何,我应该如何设置以允许 &.'-_ (是的,点和 & 也是,但不是上面提到的)。

谢谢。

4

2 回答 2

3

'-_'表示和之间的所有字符_
你需要逃避-. (顺便说一句,你不需要逃避其他任何事情)

于 2013-05-28T20:30:02.853 回答
1

转义“-”。此外,您需要在开头和结尾添加分隔符。

于 2013-05-28T20:33:52.930 回答