我有以下正则表达式:
^[a-zA-Z0-9]+( [a-zA-Z0-9]+)*$
我正在尝试验证 0-10 个字符之间的字符串,该字符串不能连续包含两个以上的空格或不能为空。该字符串不能包含任何特殊字符,可以不区分大小写,并且可以包含连字符。
如何将输入限制在 0-10 个字符之间?
我试过了
^[a-zA-Z0-9]+( [a-zA-Z0-9]+{0,10})*$
但它不起作用。
最佳答案
我会这样做:
^(?!.* )(?=.*[\w-])[\w -]{1,10}$
这使用否定的前瞻性 (?!.* )
断言没有两个连续的空格,并使用肯定的前瞻性 (?=.*[\w- ])
断言它至少有一个非空格字符(我假设“空”意味着“只有空格”)。
注意,如果不能为“空”,则不能为零长度,所以长度范围必须是1-10,不能是0-10。
值得注意的是,如果破折号是第一个或最后一个字符,则您无需转义字符类中的破折号。
关于c# - 用于验证字母数字字符串长度的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17854514/