我想用于身份证
我试过这个,但它的意思是'必须包含数字和A-Z'
^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$
我需要的例子
答案 0 :(得分:0)
在一般的正则表达式中,它看起来有点像[A-Za-z0-9]{9,19}
和[A-Za-z]{0,3}
。我想在javascript中它看起来很相似。这是你需要的吗?
答案 1 :(得分:0)
前两个条件使用前瞻,条件3和4使用字符类:
Must contain number : (?=.*\d)
Can contain 0 to 3 letter : (?=(?:\d*[a-zA-Z]?\d*){0,3}$)
No space : included in the next condition
Overall length between 9 to 19. : [a-zA-Z\d]{9,19}
将它们组合在一起:
/^(?=.*\d)(?=(?:\d*[a-zA-Z]?\d*){0,3}$)[a-zA-Z\d]{9,19}$/
您可以使用不区分大小写的标志简化它:
var test = [
'1234567890',
'ABC12345678',
'ABCD12345678',
'AB12345C6789',
'1234ABC567890',
'1234ABCE56789'
];
console.log(test.map(function (a) {
return a+' :'+/^(?=.*\d)(?=(?:\d*[a-z]?\d*){0,3}$)[a-z\d]{9,19}$/i.test(a);
}));