我需要你的帮助来编写一个正则表达式来验证一个符合下面规则的字符串。
“2个字母和4个数字。它可以是一个混合字符串”
例如:11a1a1或1a11a1..etc
感谢您的帮助。
答案 0 :(得分:1)
试试这样:
^(?=.*\d.*?\d.*?\d.*?\d)(?=.*[a-zA-Z].*?[a-zA-Z]).+$
由于问题没有说明这样的字符串可以有多长,只要满足基本规则,就可以接受任何长度。
const regex = /^(?=.*\d.*?\d.*?\d.*?\d)(?=.*[a-zA-Z].*?[a-zA-Z]).+$/gm;
const str = `aa1111
b1b111
1111aa
11a1a1
1a11a1
aaaa11
bbb111
b1b1b1
b11b1b`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match) => {
console.log(`Found match: ${match}`);
});
}