【发布时间】:2011-02-07 07:06:26
【问题描述】:
我想检查输入字符串以验证正确的文本。
一个。我希望用户允许编写字母数字字符,包括句点、逗号、连字符和圆括号 ()
b.但是,我不希望用户一起输入 3 位或更多位的数字。例如:12 是允许的,而 185 是不允许的。
c。我不希望用户输入诸如“......”或“----------”或“aaaaaaaaaaaaaa”或“bbbbbbbb”等字符串。
请建议相同的正则表达式。
【问题讨论】:
我想检查输入字符串以验证正确的文本。
一个。我希望用户允许编写字母数字字符,包括句点、逗号、连字符和圆括号 ()
b.但是,我不希望用户一起输入 3 位或更多位的数字。例如:12 是允许的,而 185 是不允许的。
c。我不希望用户输入诸如“......”或“----------”或“aaaaaaaaaaaaaa”或“bbbbbbbb”等字符串。
请建议相同的正则表达式。
【问题讨论】:
您可以使用正则表达式:
(?!.*(.)\1{2})^[a-zA-Z0-9.,()-]*$
它使用负前瞻(?!.*(.)\1{2}) 来确保没有任何字符重复3 组。
然后它使用正则表达式^[a-zA-Z0-9.,()-]*$ 来确保字符串仅由字母、数字、句点、逗号、括号和连字符组成。
【讨论】:
code if(preg_match("(?!.*(.)\1{2})^[a-zA-Z0-9.,()-]*$ ", $about_you)){ echo '无效文本'; code 并引发以下错误:Warning: preg_match() [function.preg-match]: Unknown modifier '^' in E:\Projects\www\scripts\test-f.php on line 33 line 33 begis在 if(preg_match("(?!.*(.)\1{2})^[a-zA-Z0-9.,()-]*$", $about_you)){
if(preg_match("/(?!.*(.)\1{2})^[a-zA-Z0-9.,()-]*$/", $about_you)){
code if(preg_match("/(?!.*(.)\1{2})^[a-zA -Z0-9.,()-]*$/", $about_you)){ echo "error"; }code
/(?!.*(.)\1{2})^.*$/ 这个检查任意 3 个或更多连续字符。
大多数正则表达式库支持以下内容:
/(.)\1{2,}/
\1 是一个反向引用
【讨论】: