JSP:
<li id="osDriverLic" style="Display: none"><label><spring:message
code="MESS_License" />:</label> <input
type="text" class="easyui-validatebox" id="driverLicNew"
name="Driverlicense"
data-options="validType:['alphanumeric']" /></li>
JavaScript的:
function doValidate(){
$.extend($.fn.validatebox.defaults.rules, {
equals: {
validator: function(value,param){
return value == $(param[0]).val();
},
message: 'Fields do not match.'
},
emailAddress: {
validator: function(value,param){
var myReg=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var emails = value.split(";")
for(var i=0;i<emails.length;i++){
console.log(emails[i]);
if(emails[i] != null && emails[i] != ''){
if(!myReg.test(emails[i])){
return false;
}else{
continue;
}
}
}
return true;
},
message: 'Please enter a valid email address.'
},
//here is my custom validator
alphanumeric: {
validator: function(value,param){
console.log("come here"); // anyway it has no log in console here..
var reg= /^(?!([a-zA-Z]+|\d+)$)[a-zA-Z\d]{1,10}$/;
console.log("come here 2"); // no log, too.
return reg.test(value);
},
message: 'Please enter a valid alphanumeric combination with 1–10 characters.'
}
});
$("#editAccountForm .easyui-validatebox").each(function () {
$(this).validatebox('validate');
});
}
我的代码可能没什么问题,因为当我改变代码时
validType:['alphanumeric']
到validType:['emailAddress']
,
它确实进入了验证器。但现在,它在这里没有任何影响。那我的js代码有什么问题?
顺便说一下,如果我需要,它会验证:
(1)字母数字组合,包含字母和数字。
(2)和[1,10]中的长度,如何编写RegExp?我尝试了代码
var myReg=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
但我不确定这是对的。
答案 0 :(得分:0)
在javascript中,变量VReg可能应该命名为mReg,并用作mReg.test(...)。没有要测试的reg变量,所以javascript片段会出错吗?
匹配包含至少1个字母和1个数字的2到10个字母数字的正则表达式:
/^(?=.*[A-Za-z])(?=.*[0-9])[A-Za-z0-9]{1,10}$/
这将匹配:
123456789A
abcdefgHI0
a0
但不是:
abcdefghij
1234567890
abcdefgh123lm
abc-012
如果是第一封验证正则表达式的电子邮件。 这可能更短:
/^[\w.-]+\@[\w.-]+\.[\w]{2,4}$/