js正则表达式替换捕获内容

JavaScript031

js正则表达式替换捕获内容,第1张

将@王者的面具<102292>中的尖括号和尖括号内的id删除,将用户名称高亮,并将id在昵称dom元素的data-uid属性保存。

用js字符串的replace函数实现,用正则表达式匹配需要替换的字符,正则表达式中,每对括号()为一个分组,可以用正则的分组来捕获匹配到的内容,用占位符$1、$2代替。

你的目的是把D2 E3 F4的值相加,得到他们的和。这个不需要替换的,js数字直接相加就可以。

var D2=5,E3=10,F4=20

var str = parseInt(D2)+parseInt(E3)+parseInt(F4) //parseInt是把字符转数字

alert(str)

这样str的值就是D2 E3 F4相加的结果。

        正则表达式,又叫规则表达式,英文名Regular Expression,本质是操作字符串

         1、模式匹配    表单验证

         2、文本检索    搜索

         3、替换        过滤

         简单,方便,性能高

        var reg=new RegExp('规则','模式')  通过构造函数创造

        var reg=/规则/模式                通过字面量创建

       i  忽略大小写

       g  全局

       m  多行

       注:不分前后顺序

      str.match(正则)  返回数组 没有返回 null

      str.search(正则)  返回下标  没有返回-1

      str.replace(正则,替换成谁)  返回替换后的字符串

      str.replace(正则,function(s){

                       s 符合正则条件的字符串

       })

       \d  数字 /[0-9]/

       \s  空格

       \w  /[0-9a-zA-Z_]/ 单词

       \D  非数字  /[^0-9]/

       \S  非空白

       \W  非单词  /[^0-9a-zA-Z_]/

.(点)    代表任意

         \.  代表.

         \\  代表\

         \\\\  代表\\

          \/    代表/

          只要有特殊意义的都要转译

          +  {1,m}  若干个  最少1个最多不限

          ? {0,1}  可有可无

          *  {0,m}  可以没有,多了不限

          {n}  正好n个

         {n,m}  最少n个 最多m个

         {n,}  最少n个,最多不限

         {,m} × 没有这种写法

        ^  行首

         注:如果^单独使用,代表字符串行首,配合m使用会识别段落

        $  行尾

        [] 中括号

             1、[]里面的东西都是或的形式

             2、[]里面和放范围

             3、[^]  不代表行首,代表除去里面的范围

             4、其他特殊符号代表本身

         1、test()  一般配合^ &

               功能:用于检测是否于正则匹配。

               返回:布尔值,true匹配,false不匹配

               语法:reg.test(检测的内容)

          2 exec()

               功能:用于检测是否于正则匹配。

               返回:数组, 不匹配返回null

               语法:reg.test(检测的内容)

               再做验证之前:验证分两种,一种强校验,一种弱校验

            (1)验证手机号                                      /1[23457]\d{9}/

            (2)验证座机号      区号-座机号            /(0[1-9]\d-)?[1-9]\d{7}/

            (3)验证qq                                            /[1-9]\d{4,11}/

            (4)实现一个trim函数 去掉收尾空格      /^\s+|\s+$/g

            (5)中文                                                /[\u4e00-\u9fa5]/

            (6)验证年龄       18-100                       /^1[89]|[2-9]\d|100$/

            (7)邮箱:     asdsad@163.com           /^\w{5,12}@[a-z0-9]{2,8}\.com$/

            (8)  过滤html                                            /<[^>]+>/g

        1、分组    ab+ abbbb  (ab)+

        2、匹配子级

              配合replace使用  str.replace(reg,function(s,a,b){

               s是 整体

               a是第一个括号的项

               b是第二个括号的项

          })

        3、优选级  ^(1[89]|[2-9]\d|100)$

        4、重复的子项

              abbb          /(a)(b)\2+/

今天先给大家总结到这儿,后续还会有补充