js一般的验证

/*
创建时间:2010-09-20
作用:用于一般的验证
注意事项:input中要加入id项;后面的信息显示的div中也要加id项,内容合适为:input的id + ‘Mess’;
*/

var validatedInfo = "<img src='/images/pic_right.gif' width='12' height='12'>&nbsp;";
var validatedErrorInfo = "<img src='/images/pic_error.gif' width='12' height='12'>&nbsp;";
var validatedLoadInfo = "<img src='/images/loading.gif' width='12' height='12'>&nbsp;";
var containsIllegalCharInfo = validatedErrorInfo+"该登陆名由汉字、英文字母或数字组成!";
var checkMessNum = 0;//标示是否有错误,不代表错误信息号
var filterString = "%,&,#,@,!,~,%,&,——,(,),#,@,!";

/**
* 选中下拉框
* @param id
* @param value
* @return
*/
var selected = function(id, value){
$("#"+ id).children().each(function(){
  if ($(this).text()== value)    this.selected = true;
});
}

/**
* 选中单选项
* @param id
* @param value
* @return
*/

var setRadio = function(name, value){
$("input[@type=radio][@name=" + name + "][@value=" + value + "]").attr("checked", true);
};

/**
* 选中多选项
* @param id
* @param value
* @return
*/
var setCheckbox = function(name, ary){
$("input[@type=checkbox][@name=" + name + "][@value=" + ary + "]").attr("checked", true);
}
/*
var setCheckboxArray = function(name, ary){
$(ary).each(function(i){
$("input[@type=checkbox][@name=" + name + "][@value=" + ary[i] + "]").attr("checked", true);
});
}
*/


/**
* 过滤字符串
* @param {Object} id
* @return {TypeName}
*/

var filterStr = function(id){
var fsAry = filterString.split(",");
var str = "";
for(var i = 0; i < fsAry.length; i++ ) {
if($("#"+ id).val().indexOf(fsAry[i]) != -1) {
str += fsAry[i] + " ";
}
}
return str;
}

/**
* jquery 过滤字符串
* @param {Object} id
* @param {Object} messRight
* @param {Object} messError
* @param {Object} obj
* @return {TypeName}
*/
var jFilterStr = function(id, messRight, messError, obj){
var str = filterStr(id);
if("" != str)
return showMess(id, str + messError, false);
else
return showMess(id, messRight, true);
}

/**
* 验证是否包含空格
*/
var trimBlank = function(id, messRight, messError, obj){
if( obj.value.indexOf(' ') != -1){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};

//验证是否为空
var checkNull = function(id, messRight, messError, obj){
if( $.trim(obj.value) ==''){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};
//验证是否是汉字
var checkMan= function(id, messRight, messError, obj){
  var aa=\u4e00-\u9fa5;
if(aa.test($.trim(obj.value))){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};

/**
* 当鼠标点击时,显示的信息
* @param id input中要加入id项
* @param mess 输出的信息
* @param obj
* @author zhangzz
* @return
*/
var checkInfo = function(id, mess, obj){
return showMess(id, '<font color="#A2A2A2">'+mess+'</font>', false);
};
var checkInfoTwo = function(id, mess, obj){
return showMess(id, '<font class="lanhui_sw">'+mess+'</font>', false);
};

//验证最小长度
var checkMinLength = function(id, l, messRight, messError, obj){
/**
* 修改时间:2009年1月20日;修改人:张自忠
* 把一个汉字转换成两个字符
*/
var unlen = obj.value.replace(/[^\x00-\xff]/g, "***").length
if (unlen < l){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};

//验证最大长度
var checkMaxLength = function(id, l, messRight, messError, obj){
/**
* 修改时间:2009年1月20日;修改人:张自忠
* 把一个汉字转换成两个字符
*/
var unlen = obj.value.replace(/[^\x00-\xff]/g, "***").length
if (unlen > l){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};


/**
* 验证金额
* 输入数字是否符合规范 如:1,000,000,000
* 不能大于int 数据类型的最大值(2147483647)
* @param id
* @param messRight
* @param messError
* @param obj
* @return
*/
var checkMoney = function (id, messRight, messError, maxMessError, obj) {
var str = obj.value;
str=str.replace(/,/g,"");
var myReg = /^[0-9]*$/;
if(!myReg.test(str)) {
return showMess(id, messError, false);
}else{
if(str > 2147483647)
return showMess(id, maxMessError, false);
else
return showMess(id, messRight, true);
}
}

/**
* 检查输入是否包含半角和全角的单双引号、正反斜杠、尖括号
*/
var containsIllegalChar = function (id, messRight, messError, obj) {
//var regi = /^(.*)[@#$%^&*\(\)~\[\]'"‘“\/\\<>](.*)$/;
//var regi =/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/;
//var regi = /^[0-9A-Za-z]$/;.replace(/[^\x00-\xff]/g, "**")
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";      
     var regi = new RegExp(regu);     
//var regi = /^[A-Za-z0-9]+$/;
var str = $.trim(obj.value);
    if(!regi.test(str)) {
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
}
/**
* 身份证号码  
* @param s
* @return
*/
var identityCard = function(id, messRight, messError, obj)
{   
//身份证正则表达式(15位)
var isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
var isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/;
//验证身份证,如果正确,提交到reg.asp页面
if (obj.value == "" || isIDCard1.test(obj.value)||isIDCard2.test(obj.value)) {
return showMess(id, messRight, true); 
}else {
return showMess(id, messError, false);
}


/**
* 校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”  
* @param s
* @return
*/
var isTel = function(id, messRight, messError, obj)//(s)
{  
//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;  
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  
if (!patrn.exec(obj.value))
return showMess(id, messError, false); 
return showMess(id, messRight, true); 


/**
* 校验手机号码:必须以数字开头,除数字外,可含有“-”    
* @param s
* @return
*/
var isMobil = function(id, messRight, messError, obj)
{    
if (((/^13[0-9]{1}[0-9]{8}$/g.test(obj.value))||(/^15[9]{1}[0-9]{8}$/g.test(obj.value)) || (/^1[3,5]{1}[0-9]{1}[0-9]{8}$/g.test(obj.value))))
return showMess(id, messRight, true);
else
return showMess(id, messError, false); 
}  

/**
* 校验邮政编码     
* @param s
* @return
*/
var isPostalCode = function(id, messRight, messError, obj)
{    
var patrn=/^[0-9]\d{5}(?!\d)$/;
if ((obj.value != "") && !patrn.exec(obj.value)) {
return showMess(id, messError, false); 
}else {
return showMess(id, messRight, true);
}
}  

/**
* 校验图片格式    
* @param s
* @return

  */
var checkImages = function(id, messRight, messError, obj)
{   
var file = obj.value.replace(/^[\s]+|[\s]+$/g,'');
file = file.substring(file.lastIndexOf("."));
if(file.toLowerCase()==".jpg" || file.toLowerCase()==".gif" || file.toLowerCase()==".png")
return showMess(id, messRight, true);
else
return showMess(id, messError, false);
}

/**
* 校验url   
* 这个url的正则表达式判断的js!是比较全面的。它验证的情况包括!IP,域名(domain),ftp二级域名,域名中的文件,域名加上端口! 
* @param s
* @return
*/
var isUrl = function(id, messRight, messError, obj)
{    
var strRegex = /^http:\/\/(.)+$/;
var re=new RegExp(strRegex);
if (!re.test(obj.value))
return showMess(id, messError, false); 
return showMess(id, messRight, true);
}


//验证数字,目前还存在问题。
var checkNumber = function(id, messRight, messError, obj){
/**
* 修改时间:2009年1月20日;
* 正则表达式验证数字
*/
var myReg = /^[0-9]*$/;
if(!myReg.test(obj.value)) {
//if (parseInt(obj.value) != obj.value  ){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};

//验证email正确性,验证不是很完全。
var checkEmail = function(id, messRight, messError, obj){
/**
* 修改时间:2009年1月20日;
* 正则表达式验证email
*/
//var myReg = /^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i;
var myReg = /^[a-z0-9]+([_\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\.[a-z]{2,}$/i
if ( !myReg.test(obj.value) ){
//if ( !/.+@.+\.[a-zA-Z0-9]{2,4}$/.test(obj.value) ){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
};

//验证两个输入框是否相等,主要真对两次输入密码。id1:之前的输入框,id2:需要和之前比较值是否相等的输入框
var checkEqual = function(id1, id2, messRight, messError, obj){
if ( obj.value != $('#' + id1).val() ){
return showMess(id2, messError, false);
}else{
return showMess(id2, messRight, true);
}
};

//验证两个输入框是否相等,主要真对两次输入密码。id1:之前的输入框,id2:需要和之前比较值是否相等的输入框
var checkEqualStringNot = function(id1, objvalue, messRight, messError,obj){
if ( obj.value == objvalue ){
return showMess(id1, messError, false);
}else{
return showMess(id1, messRight, true);
}
};

//验证form中的所有input都不能为空值
var checkAllInputNull = function(id, messRight, messError){
$('input[@check=null]').each(function(){
if(this.value == ''){
return showMess(id, messError, false);
}else{
return showMess(id, messRight, true);
}
});
};

var checkRadio = function(name, messRight, errorRight){
alert("请选择商务方式");
var modes = document.getElementsByName(name);
var j = 0;
for(var i = 0 ; i < modes.length; i++){
if (!modes[i].checked)   {
j++;
}
    }
    if(j==modes.length )
    {
      //alert("请选择商务方式");
      //return ;
      showMess(name, errorRight, false);
      return false;
    }
    return true;
}


//展示相应的信息;并且,记录、返回是否正确
var showMess = function(id, mess, isRight){
//如果没有相应的id,就直接使用alert弹出错误信息!
if(document.getElementById(id + 'Mess') == null){
if(!isRight)
checkMessNum = 1;
else
if(mess == '')
return isRight;
//alert(id+mess);
return isRight;
}
//在相应的id的地方显示错误信息
if(isRight){
$('#' + id + 'Mess').removeClass('errorMessage').addClass('okMessage').html(mess);
}else{
$('#' + id + 'Mess').removeClass('okMessage').addClass('errorMessage').html(mess);
checkMessNum = 1;
}
return isRight;
};

function checkSumbit(content,formName){
   var content = document.getElementById(content).value;
 
   content =  content.replace(/\s+/g,""); 

   if(content == ""){
   alert("请输入要搜索的内容");
   return false;
   }else{
   eval("document."+formName+".submit();");
   return true;
   }
 
}

/**
* 3秒钟后自动隐藏信息
*/    
setTimeout('process()', 3000);
function process() {
if (null != document.getElementById("hiddenDiv"))
document.getElementById("hiddenDiv").style.display = "none";
}  

/**
* 多选框全选
* 刘会彬 - 2010年11月11日
*/ 
function checkAll(objAll,checkNames){
   var checks=document.getElementsByName(checkNames);
   if(objAll.checked==true){
       for(var i=0;i<checks.length;i++){
          checks[i].checked=true;
       }
   }else{
       for(var i=0;i<checks.length;i++){
          checks[i].checked=false;
       }
   }
}
/**
* 去除空格
* liuhuibin 2010 11 19
*/
function trim(str){
    return str.replace(/(^\s*)|(\s*$)/g, "");
}



你可能感兴趣的:(js)