Regex验证字母数字字符串的长度

本文关键字:字符串 数字字符 数字 验证 Regex | 更新日期: 2023-09-27 18:24:47

我有以下正则表达式:

^[a-zA-Z0-9]+( [a-zA-Z0-9]+)*$

我正在尝试验证一个介于0-10个字符之间的字符串,该字符串不能在一行中包含两个以上的空格,也不能为空。字符串不能包含任何特殊字符,并且可以不区分大小写,还可以包括连字符。

如何将输入限制在0-10个字符之间?

我试过

^[a-zA-Z0-9]+( [a-zA-Z0-9]+{0,10})*$

但它不起作用。

Regex验证字母数字字符串的长度

我会这样做:

^(?!.*  )(?=.*['w-])['w -]{1,10}$

这使用否定的先行(?!.* )来断言不存在两个连续的空格,而使用肯定的先行(?=.*['w-])来断言它至少有一个非空格字符(我假设"空"表示"只有空格")。

请注意,如果不能为"空",则不能为零长度,因此长度范围必须为1-10,而不是0-10。

值得注意的是,如果破折号是第一个或最后一个字符,则不需要转义字符类中的破折号。

(?i)([a-z?0-9?'-?]'s?){0,10}

不区分大小写,长度在0-10之间,匹配字母、数字、连字符和单空格的任何组合。

使用范围时,我认为没有"+"。

^[a-zA-Z0-9]+( [a-zA-Z0-9]{0,10})*$

还有,你说你接受连字符,但没看到这里吗?

所以

^[a-zA-Z0-9]+( [a-zA-Z0-9'-]{0,10})*$