正则纳税号_JS常见简单正则表达式验证功能⼩结【⼿机,地
址,企业税号,⾦额,⾝份证等】...
本⽂实例总结了JS常见简单正则表达式验证功能。分享给⼤家供⼤家参考,具体如下:
下⾯都是⼀些⽐较常⽤简单的验证,像那些特殊的复杂的情况这⾥不进⾏考虑
1、验证电话号码或者⼿机号码
/**
* 验证电话号码(⼿机号码+电话号码)
* @param obj
* @returns {Boolean}
*/
function checkPhoneNum(obj){
if(/^((\d{3}-\d{8}|\d{4}-\d{7,8})|(1[3|5|7|8][0-9]{9}))$/.test(obj)){
return true;
}
}
2、验证地址(中⽂、英⽂、数字)
/**
* 验证企业地址(中⽂、英⽂、数字)
* @param obj
*/
function checkAddress(obj){
if(/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(obj)){
return true;
}
}
3、验证⽤户名
/**
* 验证⽤户名输⼊格式
* @param obj
* @returns {Boolean}
*/
function checkUserName(obj){
if(/^[a-zA-Z0-9_-]{3,16}$/.test(obj)){
4、验证密码
/**
* 验证密码输⼊格式
* @param obj
* @returns {Boolean}
*/
function verifyPassword(obj){
if(/^[a-z0-9_-]{5,18}$/.test(obj)){
return true;
}
}
5、验证企业税号
/**
* 验证税号
* 15或者17或者18或者20位字母、数字组成
* @param obj
* @returns {Boolean}
*/
function checkTax(obj){
if(/^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/.test(obj)){ return true;
}
}
6、验证⾦额
/**
* 验证⾦额(可验证 ⼤于等于零,⼩于等于99999999.99 的数字)
* @param obj
* @returns {Boolean}
*/
function checkMoney(obj){
if(/^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/.test(obj)){
7、验证⾝份证号,包括⼤陆⾝份证号,和港澳台⾝份证号,当然这⾥都只是简单的规范⼀下,实际的像⾹港的⾝份证号最后的括号⾥⾯的校验位都是需要根据前⾯的
数字依据⼀定的加权算法算出来进⾏校验的,这⾥没有涉及到。如果需要特别精确则可以去研究⼀番。
/**
* 验证⼤陆的⾝份证号
* 验证⾝份证号
* ⾝份证号码为15位或18位的全数字,或者18位时前17位是数字,最后⼀位是校验位,可能是数字或字符X或x
* @param obj
*/
function checkIdCard(obj){js中文正则表达式
if(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(obj)){
return true;
}
}
/**
* 验证港澳台⾝份证
* @param obj
*/
function checkGATIdCard(obj){
var reg1 = /^[A-Z]{1,2}[0-9]{6}[\(|\(]?[0-9A-Z][\)|\)]?$/;//⾹港格式1 (⾹港⾝份证号码结构:XYabcdef(z))
var reg2 = /^[A-Z][0-9]{8,12}$/;//⾹港格式2 (H60152555)
var reg3 = /^[1|5|7][0-9]{6}[\(|\(]?[0-9A-Z][\)|\)]?$/;//澳门,8位数,不包含出⽣年⽉ 格式为 xxxxxxx(x) 注:x全为数字,⽆英⽂字母⾸位数只有1、5、7字开头的
var reg4 = /^[a-zA-Z][0-9]{9}$/;//台湾:10位字母和数字
st(obj) || st(obj) || st(obj) || st(obj)){
return true;
}
}
下⾯是⽐较权威的验证⾝份证号的写法:
/**
* ⾝份证15位编码规则:dddddd yymmdd xx p
* dddddd:地区码
* yymmdd: 出⽣年⽉⽇
* xx: 顺序类编码,⽆法确定
* p: 性别,奇数为男,偶数为⼥
* ⾝份证18位编码规则:dddddd yyyymmdd xxx y
* dddddd:地区码
* yyyymmdd: 出⽣年⽉⽇
* xxx:顺序类编码,⽆法确定,奇数为男,偶数为⼥
* y: 校验码,该位数值可通过前17位计算获得
* 18位号码加权因⼦为(从右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ] * 验证位 Y = [ 1, 0, X, 9, 8, 7, 6, 5, 4, 3, 2 ]
* 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
* i为⾝份证号码从右往左数的 2...18 位; Y_P为脚丫校验码所在校验码数组位置
*
*/
// 构造函数,变量为15位或者18位的⾝份证号码
function IdCardValidate(CardNo) {
this.Valid = false;
this.ID15 = '';
this.ID18 = '';
this.Local = '';
if (CardNo != null)
this.SetCardNo(CardNo);
}
// 设置⾝份证号码,15位或者18位
IdCardValidate.prototype.SetCardNo = function(CardNo) {
this.ID15 = '';
this.ID18 = '';
this.Local = '';
CardNo = place(" ", "");
var strCardNo;
if (CardNo.length == 18) {
pattern = /^\d{17}(\d|x|X)$/;
if ((CardNo) == null)
return;
strCardNo = UpperCase();
} else {
pattern = /^\d{15}$/;
if ((CardNo) == null)
return;
strCardNo = CardNo.substr(0, 6) + '19' + CardNo.substr(6, 9) strCardNo += this.GetVCode(strCardNo);
}
this.Valid = this.CheckValid(strCardNo);
}
// 校验⾝份证有效性
IdCardValidate.prototype.IsValid = function() {
return this.Valid;
}
// 返回⽣⽇字符串,格式如下,1981-10-10
IdCardValidate.prototype.GetBirthDate = function() {
var BirthDate = '';
if (this.Valid)
BirthDate = this.GetBirthYear() + '-' + this.GetBirthMonth() + '-' + this.GetBirthDay();
return BirthDate;
}
// 返回⽣⽇中的年,格式如下,1981
IdCardValidate.prototype.GetBirthYear = function() {
var BirthYear = '';
if (this.Valid)
BirthYear = this.ID18.substr(6, 4);
return BirthYear;
}
/
/ 返回⽣⽇中的⽉,格式如下,10
IdCardValidate.prototype.GetBirthMonth = function() {
var BirthMonth = '';
if (this.Valid)
BirthMonth = this.ID18.substr(10, 2);