【正则表达式】--常用汇总(陆续更新)
浮点型demo: if(/^d+(.d+)?$/.test(value)){ this.val(/.exec(value)) } 千分位小数点后两位
function cc(s){ s=s+""; if(/[^0-9.]/.test(s)) return "invalid value"; s=s.replace(/^(d*)$/,"$1."); s=(s+"00").replace(/(d*.dd)d*/,"$1"); s=s.replace(".",","); var re=/(d)(d{3},)/; while(re.test(s)) s=s.replace(re,"$1,$2"); s=s.replace(/,(dd)$/,".$1"); return s.replace(/^./,"0.") } 只能输入数字 <input onkeyup="this.value=this.value.replace(/[^d]/g,'')"/> 邮箱:/([w-]+@[w-]+.[w-]+)/ 字母+空格:/^[a-zA-Z ]*$/ 合法URL:/b(?:(?:https?|ftp)://|www.)[-a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i 非负整数(正整数+0):^d+$/ 正整数:/^[0-9]*[1-9][0-9]*$/ 非正整数(负整数+0):/^((-d+)|(0+))$/ 负整数:/^-[0-9]*[1-9][0-9]*$/ 整数:/^-?d+$/ 非负浮点数(正浮点数+0):/^d+(.d+)?$/ 正浮点数:/^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$/ 非正浮点数(负浮点数+0):^((-d+(.d+)?)|(0+(.0+)?))$/ 负浮点数:/^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$/ 浮点数:/^(-?d+)(.d+)?$/ 特殊字符:/[~#^$@%&!*]/ ^[1-9]d*$ //匹配正整数 中文 var reg=/^[u4e00-u9fa5]{0,}$/; /*邮箱验证*/ /*身份证验证*/ var Wi = [ 7,9,10,5,8,4,2,1,6,3,7,1 ]; // 加权因子 var ValideCode = [ 1,2 ]; // 身份证验证位值.10代表X function verify_card(name) { var idCard=$.trim($("#"+name).val()); idCard = trim(idCard.replace(/ /g,"")); //去掉字符串头尾空格 if (idCard.length == 15) { return isValidityBrithBy15IdCard(idCard); //进行15位身份证的验证 } else if (idCard.length == 18) { var a_idCard = idCard.split(""); // 得到身份证数组 if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){ //进行18位身份证的基本验证和第18位的验证 return true; }else { return false; } } else { return false; } } /** * 判断身份证号码为18位时最后的验证位是否正确 * @param a_idCard 身份证号码数组 * @return */ function isTrueValidateCodeBy18IdCard(a_idCard) { var sum = 0; // 声明加权求和变量 if (a_idCard[17].toLowerCase() == 'x') { a_idCard[17] = 10; // 将最后位为x的验证码替换为10方便后续操作 } for ( var i = 0; i < 17; i++) { sum += Wi[i] * a_idCard[i]; // 加权求和 } valCodePosition = sum % 11; // 得到验证码所位置 if (a_idCard[17] == ValideCode[valCodePosition]) { return true; } else { return false; } } /** * 验证18位数身份证号码中的生日是否是有效生日 * @param idCard 18位书身份证字符串 * @return */ function isValidityBrithBy18IdCard(idCard18){ var year = idCard18.substring(6,10); var month = idCard18.substring(10,12); var day = idCard18.substring(12,14); var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day)); // 这里用getFullYear()获取年份,避免千年虫问题 if(temp_date.getFullYear()!=parseFloat(year) ||temp_date.getMonth()!=parseFloat(month)-1 ||temp_date.getDate()!=parseFloat(day)){ return false; }else{ return true; } } /** * 验证15位数身份证号码中的生日是否是有效生日 * @param idCard15 15位书身份证字符串 * @return */ function isValidityBrithBy15IdCard(idCard15){ var year = idCard15.substring(6,8); var month = idCard15.substring(8,10); var day = idCard15.substring(10,12); var temp_date = new Date(year,parseFloat(day)); // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法 if(temp_date.getYear()!=parseFloat(year) ||temp_date.getMonth()!=parseFloat(month)-1 ||temp_date.getDate()!=parseFloat(day)){ return false; }else{ return true; } } //去掉字符串头尾空格 function trim(str) { return str.replace(/(^s*)|(s*$)/g,""); } /*最多只能输入2位小数限制*/ //example:<input type="text" onkeypress="return checkDot(event,this.value)" oninput="checkValue(this)" onpropertychange="checkValue(this)"> function checkDot(event,value){ var keyCode = window.event?window.event.keyCode:event.which; //如果按下的不是数字键或是.返回false 停止往下操作 8为退格键 0是针对firefox的 if((keyCode<48 || keyCode>57) && keyCode!=46 && keyCode!=8 && keyCode!=0){ return false; } //如果存在小数点 则不能再输入小数点 if(keyCode===46 && value.indexOf('.')>-1){ return false; } return true; } /*取小数点后两位,否则截取*/ function checkValue(elem){ var _regx = /.d{3,}$/,_val = elem.value,_index = _val.indexOf('.'); //如果满足 小数点后面3位小数或两3位以上小数 则进行截取 if(_regx.test(_val)){ elem.value = _val.slice(0,_index+3); } if(_val.substring(0,1)==0 && _val.substring(1,2)=='.'){ }else if(_val.substring(0,1)==0 && _val!=''){ elem.value=parseFloat(_val); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |