我试图将两个正则表达式放在一起并且没有想到它。
我已经得到以下内容仅匹配字母数字
^([a-zA-Z0-9_-]){1,20}$
并且我已经得到以下内容以匹配连续超过7个数字的任何字符串
^\d{8,20}$
如何将两者放在一起以仅允许20个字母数字字符,连续超过7个数字
答案 0 :(得分:1)
您可以使用
/^(?=.*\d{8})[\w-]{1,20}$/
请参阅regex demo
<强>详情
^
- 字符串开头(?=.*\d{8})
- 除了换行符之外的任何0 +字符后,必须有8个连续的数字[\w-]{1,20}
- 1到20个字符(字母,数字或_
)或连字符$
- 字符串结束。JS演示:
var ss = ["Text_with_1234567", "Text_with_12345678"];
var rx = /^(?=.*\d{8})[\w-]{1,20}$/;
for (var s of ss) {
console.log(s,"=>",rx.test(s));
}
注:
.*
(?=.*\d{8}$)
。