正则表示式_常用的正则验证

<script type="text/javascript">
/*
 * 手机号码格式
 * 只允许以13、15、18开头的号码
 * 如:13012345678、15929224344、18201234676
 */
var regMobile=/^1[3,5,8]\d{9}$/;

/*
 * 固定电话号码格式
 * 因为固定电话格式比较复杂,情况比较多,主要验证了以下类型
 * 如:010-12345678、0912-1234567、(010)-12345678、(0912)1234567、(010)12345678、(0912)-1234567、01012345678、09121234567
 */
var regPhone=/^(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)|(^0\d2-?\d{8}$)|(^0\d3-?\d{7}$)$/;

/*
 * Email邮箱
 * 如:[email protected]、[email protected]、[email protected]
 */
var regEmail=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9][email protected]([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+(\.[a-zA-Z]{2,3})+$/;

/*
 * 身份证15位编码规则:dddddd yymmdd xx p
 * dddddd:6位地区编码
 * yymmdd: 出生年(两位年)月日,如:910215
 * xx: 顺序编码,系统产生,无法确定
 * p: 性别,奇数为男,偶数为女
 *
 * 身份证18位编码规则:dddddd yyyymmdd xxx y
 * dddddd:6位地区编码
 * yyyymmdd: 出生年(四位年)月日,如:19910215
 * xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女
 * y: 校验码,该位数值可通过前17位计算获得
 *
 * 前17位号码加权因子为 Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
 * 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
 * 如果验证码恰好是10,为了保证身份证是十八位,那么第十八位将用X来代替
 * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
 * i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置
 */
function validateIdCard(idCard){
 //15位和18位身份证号码的正则表达式
 var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;

 //如果通过该验证,说明身份证格式正确,但准确性还需计算
 if(regIdCard.test(idCard)){
  if(idCard.length==18){
   var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); //将前17位加权因子保存在数组里
   var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
   var idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和
   for(var i=0;i<17;i++){
    idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];
   }

   var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置
   var idCardLast=idCard.substring(17);//得到最后一位身份证号码

   //如果等于2,则说明校验码是10,身份证号码最后一位应该是X
   if(idCardMod==2){
    if(idCardLast=="X"||idCardLast=="x"){
     alert("恭喜通过验证啦!");
    }else{
     alert("身份证号码错误!");
    }
   }else{
    //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
    if(idCardLast==idCardY[idCardMod]){
     alert("恭喜通过验证啦!");
    }else{
     alert("身份证号码错误!");
    }
   }
  }
 }else{
  alert("身份证格式不正确!");
 }
}

/*
 * 只能为正整数
 */
var regNum=/^\d+$/;

/*
 * 邮政编码
 */
var regPostCode=/^\d{6}$/;

/*
 * 用户名
 * 只能是字母数字下划线,并且以字母开头(5-16位)
 */
var regUserName=/^[a-zA-Z]\w{4,15}$/;

/*
 * IP地址
 * 如:192.168.1.102
 */
var regIP=/^((([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/;

/*
 * 只能是中文汉字
 */
var regChineseChar=/^[\u4e00-\u9fa5]+$/;

/*
 * 网址
 * 只允许http、https、ftp这三种
 * 如:http://www.baidu.com
 */
var regWeb=/^(([hH][tT]{2}[pP][sS]?)|([fF][tT][pP]))\:\/\/[wW]{3}\.[\w-]+\.\w{2,4}(\/.*)?$/;

/*
 * 日期格式验证
 * 因为日期格式比较多,主要验证了以下类型
 * 2012-05-14、2012/05/6、2012.5.14、20120528
 */
var regDate=/^[1-9]\d{3}([-|\/|\.])?((0\d)|([1-9])|(1[0-2]))\1(([0|1|2]\d)|([1-9])|3[0-1])$/;

/*
 * 调用以上正则表达式的方法
 * 以验证电话号码格式为例
 */
function onCheck(tel){
 if(regMobile.test(tel)){
  alert("恭喜通过验证啦!");

 }else{
  alert("格式不正确!");
 }
}
</script>
时间: 2024-08-03 18:25:57

正则表示式_常用的正则验证的相关文章

web开发中常用的正则验证(jq)

真实姓名验证: var truenamereg = /^[\u4E00-\u9FA5]{2,6}$|^[A-Za-z]{2,18}$/;   用户密码验证: var passwdreg = /^[0-9a-z]{6,20}$/i;   用户生日验证: var birthreg = /^\d{4}-\d{1,2}-\d{1,2}$/;   用户手机验证:  var phonereg = /^0?(13[0-9]|15[0-9]|18[0-9]|14[57]|17[0-9])[0-9]{8}$/; 

jquery里正则的使用方法及常用的正则验证

本文是一篇关于jquery使用正则来验证输入,及一些常用验证规则的基础文章,适合新手. 假设我们的网页里有这样的一个表单: <input id="aijquery" type="text"> <button id="btn">验证</button> 1.验证用户输入的只能是英文和数字: $("#btn").click(function(){ var $aijquery=$("#ai

几个常用的正则验证

这里不多少上代码 代码里面有注释 /** * 页面验证 id 文本框ID msg提示信息 status 状态 * status 状态 T 固定电话 * M 手机号码 * S 身份证信息 * D 时间日期 yyyy-MM-dd */ function kyanzheng(id,msg,status){ var partten; var zuoji=true; if("T"==status){ partten=/^([0-9]{3,4}-)?[0-9]{7,8}$/; zuoji=part

常用的正则验证

手机正则 function checkphone(num) { var reg = /^[1][358]\d{9}$/; if (!num.match(reg)) { return false; } return true; } 邮箱正则 function checkEmail(email) {//验证邮箱合法性 if (!email.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/))

iOS 开发 常用的正则验证表达式:电话 、邮箱等等

#pragma mark - 验证手机号 +(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone{ NSString *regEx = @"^1[3|4|5|7|8][0-9]\\d{8}$"; return [self baseCheckForRegEx:regEx data:mobilePhone]; } #pragma mark - 私有方法 /** * 基本的验证方法 * * @param regEx 校验格式 * @param

几个常用的正则验证表达式-可以满足一般需求

不定期更新 1 手机号码验证: var pattern = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; 2 身份证号码验证: var pattern = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])

JavaScript正则表达式_常用的正则

/*检查邮政编码*/ var pattern = /[1-9][0-9]{5}/; //共 6 位数字,第一位不能为0 {5}表示后面5位0到9 var str = '224000'; alert(pattern.test(str)); /*检查文件压缩包*/ var pattern = /[\w]+\.zip|rar|gz/; //\d\w_表示所有数字和字母加下划线 \.表示匹配.,后面是一个选择 var str = '123.zip'; alert(pattern.test(str));

常用的正则检测总结

常用的正则验证 1.验证是否为手机号格式 /^0?1[3|4|5|8][0-9]\d{8}$/; 2.整数格式 /^(0|[1-9]/d*)$/; 3.小数格式 /^(0|[1-9]/d*)/.(/d+)$/; 4.只能输入数字和字母 /^([a-z]|[A-Z]|[0-9]){8}$/ 5.排除全数字全字母 只能输入字母数字混合体 /(?!^\d+$)(?!^[a-zA-Z]+$)/ 6. 身份证验证 15位或18位,如果是15位,必需全是数字.如果是18位,最后一位可以是数字或字母Xx,其余

正则验证常用表单方法

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>正则验证常用表单方法</title> 6 <script type="text/javascript"> 7 function focus_username() { 8 var resultObj1=doc