一个20 - 24字符长的字母数字字符串,没有空格,没有至少有2位数的符号
AAAAAAAAAAAAAAAAAAAA - not valid
AAAAAA0AAAAAAAAA0AAA - valid
AAAAAA01AAAAAAAAA0AAA - valid
AAAAAA0AAAAAAAAA0AAA@ - not valid
答案 0 :(得分:5)
我认为这只能通过前瞻性断言来实现:
^(?=[a-zA-Z\d]{20,24}$)[a-zA-Z]*\d[a-zA-Z]*\d[a-zA-Z\d]*$
前瞻断言((?=[a-zA-Z\d]{20,24}$)
)检查字符串是否具有预期形式(20-24个字母数字字符)。第二部分([a-zA-Z]*\d[a-zA-Z]*\d[a-zA-Z\d]*
)检查它是否包含至少两位数。
答案 1 :(得分:2)
我认为这是最简单的模式:首先做一个正面的预测,检查至少有两位数字,然后匹配20-24个字母数字字符:
^(?=.*\d.*\d)[A-Za-z\d]{20,24}$
答案 2 :(得分:1)
我将是抽象的,因为这听起来像是家庭作业(如果是的话,请将其标记为这样)。
{
分钟,
最大}
[
charlist ]
如果您需要更多帮助,请更新您的问题(&标签)。
答案 3 :(得分:1)
Gumbo对要求有正确的表达。
它可以缩短,但是它比短版本更清晰,可能更快。
var rX = / ^(?= [a-zA-Z \ d] {20,24} $)([a-zA-Z] * \ d){2,} /
答案 4 :(得分:0)
(对C#语法不够自信):
if (str.length >= 20 && str.length <= 24 && /([a-z]*[0-9]){2}[a-z0-9]*/i.test(str)) {
// match found
}
答案 5 :(得分:-1)
与Gumbo基本相同的想法只是更短一些:
^(?=[\w\d]{20,24}$)[\w]*\d[\w]*\d[\w\d]*$