【发布时间】:2013-10-15 23:28:22
【问题描述】:
嗨,所以我需要编写一个程序来验证输入。
规格为“仅限字母、空格、冒号、分号、破折号、逗号、撇号和数字字符 (0-9) - 不能为空白”
当我有明确数量的字符要使用时,我知道如何执行此操作,但在这种情况下,它可以是任意数量的字符,1-50,我不知道在这种情况下如何处理正则表达式表示法任意数量的字符。我该如何开始?
【问题讨论】:
标签: php regex validation
嗨,所以我需要编写一个程序来验证输入。
规格为“仅限字母、空格、冒号、分号、破折号、逗号、撇号和数字字符 (0-9) - 不能为空白”
当我有明确数量的字符要使用时,我知道如何执行此操作,但在这种情况下,它可以是任意数量的字符,1-50,我不知道在这种情况下如何处理正则表达式表示法任意数量的字符。我该如何开始?
【问题讨论】:
标签: php regex validation
当您说输入行不能为空白时,我想,虽然您想允许空格,但该行本身不能只是空格。
基于这种看法,我建议使用这个正则表达式。括号中的负前瞻确保该行不全是空格。
^(?!\s+$)[-A-Za-z0-9:;'\s]{1,50}$
【讨论】:
如果你想匹配任意数量的东西(但至少一个),你只需要+ 字符。这是一个例子:
^[A-Za-z :;\-,'\d]+$
【讨论】:
匹配整个字符串:
^[A-Za-z0-9 :;,'-]{1,50}$
将其作为字符串的一部分进行匹配:
[A-Za-z0-9 :;,'-]{1,50}
【讨论】:
在正则表达式中有几种表示多重性的选项:
k? 表示可能有 0 或 1 个k,即 或k
k*表示可能有 0 个或多个 ks,例如 , k, kk, ...
k+ 表示可能有 1 个或多个 ks,例如k, kk, ...
k{5} 表示正好有 5 个ks,即kkkkk
k{3,} 表示有至少 3 个ks,例如kkk, kkkk, ...
k{2,4} 表示有 2、3 或 4 个ks。
更多阅读请查看PHP Documentation的相应页面。
【讨论】:
k{,5} 不见了。
k{,5}不是量词{,6} is not a quantifier, but a literal string of four characters.
k{0,max}。