说实话,对正则表达式有些许的畏惧感,之前的每次只要碰到需要正则表达式去匹配的情况,都会刻意的躲过或者直接从度娘处获取。

此时此刻,感觉到了某一个特定的点去触及她。但笔者对于正则表达式使用上的理解是这样的,仅仅对她的发展历史和使用语法粗略的过了一遍,接下来就是一次一次的使用和记录下和她的每次邂逅。慢慢的,就能在心里勾勒出她最美的一面。

本篇仅记录正则表达式在js中的邂逅经历,如有读者想在其中窥探她的某种语法,直接搜索你想要实现的功能即可,例如【特定字符 多次匹配】之类的即可。

1.特定字符 全部匹配

  需求:有下面这个字符串【"condition=userName=&age1=2017-06-07&age2=2017-06-14&height1=&height2=&weights1=&weights2=&uaValue1=&uaValue2=&uaphValue1=&uaphValue2="】,需要将字符串中【&】字符全部替换成【;】字符。

  实现:  

"condition=userName=&age1=2017-06-07&age2=2017-06-14&height1=&height2=&weights1=&weights2=&uaValue1=&uaValue2=&uaphValue1=&uaphValue2=".replace(/&/g,";");

  结果:

"condition=userName=;age1=2017-06-07;age2=2017-06-14;height1=;height2=;weights1=;weights2=;uaValue1=;uaValue2=;uaphValue1=;uaphValue2="

  说明:replace(正则,要替换为的字符串)

     /正则/ ,前后两个斜杠代表js中正则表达式的前后边界

     /&/,匹配单个字符&,如果直接使用在上面的情景,仅能替换 原始字符串中的第一个&符号为;,后面的&都不会变化

     /&/g,可以匹配上原始字符串中所有的&

 

 

2.以匹配10-30位长度的纯数字子字符串为例

js正则表达式[RegExp]使用指南:http://www.runoob.com/js/js-regexp.html

注意:正则表达式的书写格式 是 /RegExp/参数 ,不用使用双引号括起来

//查找10-30位 纯数字出现的位置[效果:返回的是子字符串的起始位置]
"http://www.baidu.com/sc=1919191921&09923893909912".search(/\d{10,30}/ig)
str.search(RegExp)
//替换10-30位 纯数字为>>> [效果:是全局满足条件的子字符串都会进行替换]
"http://www.baidu.com/sc=1919191921&09923893909912".replace(/\d{10,30}/ig,">>>")
str.replace(RegExp)
//验证字符串中是否有符合正则表达式的子字符串存在[效果:存在10-30长度的纯数字,返回true]
/\d{10,30}/ig.test("http://www.baidu.com/sc=1919191921&09923893909912")
RegExp.test(str)
//返回第一个匹配上10-30长度的纯数字的子字符串[效果:返回是数组,是满足条件的子字符串和index的对象数组]
/\d{10,30}/ig.exec("http://www.baidu.com/sc=1919191921&09923893909912")
RegExp.exec(str)
//返回所有匹配上 10-30长度的纯数字的字符串[效果:返回是数组,是满足条件的子字符串的字符串数组]
"http://www.baidu.com/sc=1919191921&09923893909912".match(/\d{10,30}/ig)
str.match(RegExp)

 

3.js正则判断手机号

     if (/^1(3|4|5|6|7|8|9)\d{9}$/.test(mobile)){
          正确手机号!!
      }else{
        wx.showToast({
          title: '请输入正确手机号',
          icon: 'none',
          image: '../../imgs/error.png',
          duration: 2000
        });
      }

 

 

4.j使用正则匹配替换字符串后面的所有的0  【如果替换字符串后所有的,  正则就是 var reg=/,$/gi;】

 regDiscount(discountStr){
            var reg=/0$/gi;
            for (let i=0; i<discountStr.length; i++) {
                discountStr=discountStr.replace(reg,"");
            }

            return discountStr;
        },