我在注册屏幕上有一个输入字段,用户必须输入他的用户ID,通常为6个字符。前2个字符始终是字母,后面的字符大多是数字。 (例如,ab123c或xy5678)
我如何使用jquery / javascript检查输入字段,用户只能在提交之前以上述格式输入。
<input type="text" maxlength="6" name="uid" id="uid" placeholder="enter user id here">
答案 0 :(得分:4)
您可以使用正则表达式验证输入
regex = /^[a-z]{2}[a-z0-9]{4}$/i ;
regex = /^[a-z]{2}[a-z0-9]{4}$/i ;
console.log('ab1234', regex.test('ab1234'));
console.log('abc234', regex.test('abc234'));
console.log('ab1d34', regex.test('ab1d34'));
console.log('ab12e4', regex.test('ab12e4'));
console.log('ab12yz', regex.test('ab12yz'));
console.log('2b1234', regex.test('2b1234'));
console.log('a11234', regex.test('a11234'));
答案 1 :(得分:2)
您不需要javascript或jquery。可以使用HTML。 w3c School
<input type="text" maxlength="6" name="uid" id="uid" placeholder="enter user id here" pattern="[a-zA-z]{2}[a-zA-Z0-9]{4}">
感谢Barmar的更新,之前没有使用它。
更新
首先我不知道为什么关闭。问题不在于学习正则表达式,而在于实现。如果你想使用jQuery,Aurelien提供正确的答案,如果你不想使用jQuery或javascript,我的是。 Zohaib ljaz没有解决实施的核心问题。
第二:大多数评论没有帮助,他确实提供了示例,并且代码中有最大长度,所以当然6是最大值。
答案 2 :(得分:1)
试试这个
$('form').on('submit', function(e){
e.preventDefault();
if($('#uid').val().match(/^[a-zA-Z]{2}[a-zA-Z0-9]{4}$/)){
$(this).submit()
}
else {
//Do your error logic here
}
}