1

嗨,所以我需要编写一个程序来验证输入。

规格为“仅限字母、空格、冒号、分号、破折号、逗号、撇号和数字字符 (0-9) - 不能为空白”

当我有明确数量的字符要使用时,我知道如何执行此操作,但在这种情况下,它可以是任意数量的字符,1-50,并且在这种情况下,我不知道如何处理正则表达式表示法的字符。我该如何开始呢?

4

4 回答 4

2

当您说输入行不能为空白时,我想,虽然您想允许空格,但该行本身不能仅是空格。

基于这种看法,我建议使用这个正则表达式。括号中的负前瞻确保该行不全是空格。

^(?!\s+$)[-A-Za-z0-9:;'\s]{1,50}$
于 2013-10-16T00:00:29.860 回答
1

要匹配整个字符串:

^[A-Za-z0-9 :;,'-]{1,50}$

要将其作为字符串的一部分进行匹配:

[A-Za-z0-9 :;,'-]{1,50}

于 2013-10-15T23:31:35.560 回答
1

+如果你想匹配任意数量的东西(但至少一个),你只需要这个角色。这是一个例子:

^[A-Za-z :;\-,'\d]+$
于 2013-10-15T23:37:35.733 回答
0

有几个选项可以表示正则表达式中的多重性:

k?表示有 0 或 1k可能,即 k

k*表示有 0 个或多个ks 可能,例如 , k, kk, ...

k+表示有 1 个或多个ks 可能,例如k, kk, ...

k{5}意味着正好有 5k秒,即kkkkk

k{3,}表示至少有3k秒,例如kkk, kkkk, ...

k{2,4}表示有 2、3 或 4k秒。

如需进一步阅读,请参阅PHP 文档的相应页面。

于 2013-10-15T23:40:42.320 回答