需求:input输入数字,校验长度是否符合,并且校验是否全部为相同数字
字段长度需符合【17,18,19,23,25,26,27】
<input name="RegisterNo" type="text" class="common" maxlength="27"
value="11111111" />
var RegisterNo = fm.RegisterNo.value;
var arr = [17,18,19,23,25,26,27];
if(!inArray(RegisterNo.length, arr)) {
alert("注册号长度必须为17位或18位..");
return false;
}
var le = RegisterNo.length - 1;
var regex = eval('/(\\d)\\1{' + le + '}$/');
if(regex.test(RegisterNo)) {
alert("注册号不能全部为相同数字");
return false;
}
function inArray(search, array) {
for(var i in array) {
if(array[i] == search) {
return true;
}
}
return false;
}
字段长度有多个符合条件,我们不可能写多个正则表达式,这时我们可以动态拼接,在JS中不能直接使用常规的字符串拼接方式来拼接,它必须使用eval来进行拼接,这样可以校验多个符合长度的字段是否都为相同数字,需要注意的是,用eval拼接字符时,对于 “\” 符号需要多加一个转义符。
|