帮助php regex限制允许的字符

时间:2011-05-30 23:53:36

标签: php regex

我在php工作,想为提交的文本字段设置一些规则。我想允许字母,数字,空格和符号# ' , -

这就是我所拥有的:

/^(a-z,0-9+# )+$/i

这似乎有效,但当我添加'-符号时,我会收到错误。

5 个答案:

答案 0 :(得分:4)

几乎就在那里。您正在寻找的是character classes。这些用方括号表示。例如

/^[-a-z0-9+#,' ]+$/i

要包含连字符,它必须是该类中的第一个或最后一个字符。

修改

由于您要包含单引号并且您正在使用PHP,其中正则表达式必须表示为字符串,请小心引用模式的方式。在这种情况下,您可以使用

之一
$pattern = "/^[-a-z0-9+#,' ]+\$/i"; // or
$pattern = '/^[-a-z0-9+#,\' ]+$/i';

答案 1 :(得分:2)

您应该使用字符类 - [a-zA-Z0-9 #',-]

请注意,-应首先使用或最后使用或转义,否则会将其视为表示范围,您将收到错误

答案 2 :(得分:2)

  

我想允许字母,数字,空格和符号#',-

使用此正则表达式...

/^[-a-zA-Z\d ',#]+\z/

请注意\z。如果您使用$,则允许尾随\nCodePad

如果您使用'作为字符串分隔符,请确保转义'

答案 3 :(得分:1)

请使用/^[a-z,0-9+\#\-,\s]+$/i

答案 4 :(得分:0)

使用此正则表达式:

/^[-a-z0-9,# ']+$/i