正则表达式学习整理

/ :为定界符,要匹配的字符一般放在定界符里面;

2、 常用元字符

1)+:出现一次或多次

2)*:出现零次或多次

3)?:出现零次或一次

3、限定符

1) 字符1字符2{n}   表示字符2连续出现n次的匹配结果

       字符1字符2{n,}  表示字符2连续出现n次或更多次的匹配结果

       (字符1字符2){n}   表示字符1字符2连续出现n次的匹配结果

       (字符1字符2){n,}  表示字符1字符2连续出现n次或更多次的匹配结果

  字符1字符2{n,m}   表示字符2连续出现n到m次之间的匹配结果

示例:待匹配文本  abcabccabbcabccc

       abc{1}表示c出现一次 abcabccabbcabccc

  abc{2}表示c出现两次      abcabccabbcabccc

       abc{1,}表示c出现一次或更多   abcabccabbcabccc

  (abc){1,}表示abc出现一次或更多  abcabccabbcabccc

4.特殊重要的元字符

.  用于匹配除换行外任意字符

\s  用于匹配空格(小写)

\S  用于匹配非空格之外内容(大写)

\d  用于匹配数字

\D  用于匹配非数字

\w  用于匹配字母、数字或下划线

\W  用于匹配所有与\w不匹配字符

 另外:

/g global可选标志,表示替换将针对行中每个匹配的,否则只替换第一个,如:we.abcdewe.,加上/g后,则可以匹配到两个we

常用场景:将字符串里面除了数字和小数点外,全部清除

  1)第一步,全局匹配所有数字和小数点:/[^\d\.]/g

  2)第二步,执行替换动作:.replace(/[^\d\.]/g,"")

组合起来就是:obj.value = obj.value.replace(/[^\d\.]/g,"");

/i case insensitive,区分大小写,如:we与wE不管

5、定位符

1)^ :目标字符串开头

1) $ :目标字符串结尾

示例:

  规定开头格式且长度11位号码/^1[3|4|5|8][0-9]\d{8}$/    //13、14、15、18开头,后面8位每位0-9之间都可以

  1000-9999范围内数字判断:^([1-9]\d{3})$

  2000-2077范围内数字判断:^20([0-6]\d|7[0-7])$  //需要注意的是十位个位:77可以拆分成两部分:十位0-6时,个位0-9;十位7时,个位0-7

^代表行输入开始匹配模式;

$代表输入的结尾匹配模式 其中数字代表原来的意思,有几位代表几位;

\d代表0-9其中的一位数字;

|是或者的意思,是选择条件;

()是分组,不分组就要成为分开匹配,把正则表达式分成几个小的正则了。

 

 

手机号码判断:

var mobile = $("#phone-number").val();
if (! (/^1[3|4|5|7|8][0-9]\d{8}$/.test(mobile))) {
layer.msg("请填写正确的手机号!", {
time:1000,
offset: top.top_nav_height + 'px'
});
$("#phone-number").focus();
$("#phone-number").select();
}

身份证判断:

//身份证:地址码(6位)+出生日期码(7-14位)+顺序码(3位)+校验码(1位)
technician.id_card = $(this).find(".card").val();
if($(this).find(".card").val() !=''){
var reg = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (!reg.test($(this).find(".card").val())) {
layer.tips("请输入正确的身份证号码", ".financialTable .phone",{time:1000});
flag = false;
eachflag = false;
return;
}
}

posted @ 2017-08-24 12:20  howtosay  阅读(362)  评论(0编辑  收藏  举报