/*
正则验证手机号,邮箱,用户名等其他 所需方法及提示语等
obj 表示要检验的对象;
reg 表示正则表达式
titleobj 表示正确或错误的提示语的对象
text 表示正确提示语
errortext 表示错误提示语
callbackTrue 表示正确时的回调
callbackFalse 表示错误时的回调
*/
问题函数及调用
function verify(obj,reg,titleobj,text,errortext,flag){
if(reg.test(obj)){
titleobj.html(text);
flag = true;
}else{
titleobj.html(errortext);
flag = false;
}
}
var flag2 = false;//全局变量
$("#loadNewPswd").blur(function(){
var str =$(this).val();//获取输入的密码
console.log(str);
var newPswdErr = $("#newPswdErr");
var sureText = "正确";
var errorText = "您输入的密码格式不正确!";
config.verify(str,reg1,newPswdErr,sureText,errorText,flag2);
})
此时flag2传入函数后只在函数内部发生变化,全局变量flag2的值并没有改变。因此利用函数回调的方法解决问题,如下:
function verify(obj,reg,titleobj,text,errortext,callbackTrue,callbackFalse){
if(reg.test(obj)){
titleobj.html(text);
callbackTrue();//返回正确的值
}else{
titleobj.html(errortext);
callbackFalse();//返回错误的值
}
}
//函数调用
var flag2 = false;//全局变量
$("#loadNewPswd").blur(function(){
var str =$(this).val();//获取输入的密码
console.log(str);
var newPswdErr = $("#newPswdErr");
var sureText = "正确";
var errorText = "您输入的密码格式不正确!";
config.verify(str,reg1,newPswdErr,sureText,errorText,function(){
//正确回调
flag2 = true;
},function(){
//错误回调
flag2 = false;
})
});