4

我想知道如何为我的正则表达式指定字符数。我有正确的正则表达式,我只需要确保它可以验证零到四十个字符。

这是正则表达式

$fnameRegex = "/^[a-zA-Z0-9{0,40}-_]+$/";

我可能把它{0,40}放在了错误的地方。

4

3 回答 3

11

尝试

$fnameRegex = "/^[a-zA-Z0-9\-_]{0,40}$/";

字符类中的所有内容[]都只会匹配一个字符。你把数量限制器放在它外面(你以前有+1 个或更多 - 用 0 到 40 之间的 {0, 40} 替换它)。

我也在你的角色类中转义了你-的角色,否则它将被解释为一个范围。

我还向您推荐了很棒的regexr网站,它非常适合交互式地使用 regex。

于 2013-02-01T03:47:32.710 回答
1

尝试 [a-zA-Z0-9]{40} 这将检查 40 个大小写字母数字字符

于 2014-07-20T05:52:58.400 回答
-2

那这个呢?

^(\d){0,40}$

\d 只匹配数字 {0,40} 表示前面的表达式 (\d) 可以出现 0 到 40 次。

您可以使用此工具来检查您的正则表达式。它可能很有用:http: //gskinner.com/RegExr/

希望这可以帮助

于 2013-02-01T03:49:20.380 回答