0

我有一个正则表达式如下:

return ( ! preg_match("/^([-a-z_ -])+$/i", $str)) ? FALSE : TRUE;

我需要添加到它以允许一个句点,以便输入可能是这样的:

“圣奥斯特尔”或“圣托马斯”

我尝试了各种方法将句点添加到上述规则中,但是页面要么崩溃并只显示一个空白页面,要么触发了我的验证错误。

我尝试过这样的事情,但无济于事。

([-a-z_ -.])
([-a-z_ -\.])
([-a-z_ -])\.
(\.[-a-z_ -]) etc etc...

我已经尝试了一切,但似乎没有任何运气 - 任何想法

非常感谢

詹姆士

4

1 回答 1

1

三点:

  1. 初始正则表达式是多余的,因为它指定-了两次。

  2. [a-z_ .-]应该工作,你只需要让a-z在一起,-就在之后[或之前](否则,-将被视为元字符)。

  3. return !condition ? false : true;应该简化为return condition;,因为condition已经返回trueor false(相同的逻辑if(!condition) {var = false;} else {var = true;}应该简化为var = condition;)。

于 2013-01-15T15:50:56.080 回答