js中的正则表达式,持续更新....

来源:互联网 发布:阿里云cname多久生效 编辑:程序博客网 时间:2024/06/04 20:03

1、js正则表达式规则方法:

js风格:new RegExp("a", "i");

perl风格:/a/i


/ ....  /:     perl风格的RegExp正则写法;

+ :  为量词; 若干;

\d+ :    数字若干(多少都可以);

g: global 全局找到;

i:ignore,忽略大小写;

/北京|淘宝|百度/g           |是或的意思;

[axp]: 表示任取一个字符都可以,就是a,x,或者p都可以;

范围:
[a-z]; a-z之间的字母;
[0-9]:  0-9之间的数;等同于\d

排除:
[^a-z]:除了a-z之间的字符都要;
[^a-z0-9]: 除了英文和数字以外的东西;


转义:

\d  : 数字    [0-9]

\w   :  英文、数字、下划线  [a-z0-9_]

\s  :    空白字符   空白字符有 空格,tab等不可打印的空白字符;

\D : [^0-9]

\W: [^a-z0-9_]

\S:  非空白字符


正则中的量词:

{n, }:     最少n次,最多不限;

{n}: 正好n次;

{n, m}:     最少n次,最多m次;

*:任意次{0,}

? :        相当于{0, 1}  可以没有,也可以有1次

+:一次或任意次{1,} 

.  :任意字符,正则表达式中的.表示任意字符,想要表示. 应该写成 \.

^ :行首(字符串开头)

$:行尾(字符串结尾)


2、如匹配固话号码的正则:
010-87675654-86
87675654  
前面的区号是可以没有的,后面的分机号可有可无,因此:
(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5})?

如匹配qq号: 假设qq号开始不为0,为5-11位;
[0-9]\d{4,10}


3、正则的test()方法:
用法:正则规则串.test(str);
如果str符合正则规则串,返回true; 否则返回false;

但是test()方法有个问题:只要是字符串的一部分符合要求就行了;

因此在匹配的正则字符串前面加上行首和行尾:/^....$/

二、正则表达式验证的例子:

1、身份证号码的验证:

function isIdCardNo(code) {    var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};    var tip = "";    var pass= true;    if(!code || !/^[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{3}([0-9]|X)$/i.test(code)){        tip = "身份证号格式错误";        pass = false;    }    else if(!city[code.substr(0,2)]){        tip = "地址编码错误";        pass = false;    }    else{        //18位身份证需要验证最后一位校验位        if(code.length == 18){            code = code.toUpperCase();            code = code.split('');            //∑(ai×Wi)(mod 11)            //加权因子            var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];            //校验位            var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];            var sum = 0;            var ai = 0;            var wi = 0;            for (var i = 0; i < 17; i++)            {                ai = code[i];                wi = factor[i];                sum += ai * wi;            }            var last = parity[sum % 11];            if(last != code[17]){                tip = "校验位错误";                pass =false;            }        }    }    /*if(!pass) alert(tip);*/    if(!pass) open_modal(tip);    return pass;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我的世界字体变大了怎么办 生锈的铁钉扎了怎么办 每天晚上窗纱上老有蝙蝠倒挂怎么办 我的世界没有痒怎么办 七日杀被ban了怎么办 吕框箱子上保护摸撕不掉怎么办 我的世界开光影卡怎么办 我的世界买不了怎么办 我的世界延迟高怎么办 我的世界过于昂贵怎么办 白色麻布染上别的颜色怎么办 印度老山檀香开裂了怎么办 专升本没过线怎么办 西安公租房小孩上学怎么办 全民k歌直播没人怎么办 在全民直播没人看怎么办 皮肤又黄又粗怎么办 被强制消费后应怎么办? 当保安不发工资怎么办? 辅警改革流管员怎么办 退伍证上照片毁了怎么办 辅警年龄大了怎么办 交警2小时不出警怎么办 中暑发烧39度了怎么办 中暑头疼怎么办最快最有效 十五个月的宝宝拉肚子怎么办 中暑了头疼想吐怎么办 2周岁中暑了呕吐怎么办 容易中暑的人该怎么办 喷泡3m反光脏了怎么办 新摩托车被交警查到怎么办 写字楼保安夜班巡逻害怕怎么办 全民k歌歌曲删了怎么办 莲藕洞里的黑膜怎么办 鞋子后面的拉链磨脚怎么办 磨砂鞋尖踢掉皮怎么办 塔吊吊装过程中遇到障碍物怎么办 高速路上突然遇到障碍物怎么办 被不明物蛰了怎么办 喝酒后开车撞路政护栏怎么办 电脑过了质保期怎么办