美文网首页
javascript正则表达式全集

javascript正则表达式全集

作者: Amy_yqh | 来源:发表于2019-11-15 11:03 被阅读0次

正则表达式:

1.创建方式:

  (1)构造函数的形式:var reg = new RegExp('aaa')
  (2)字面量的形式:var reg = /a/
  1. /./ 表示除了换行符(\r,\n)以外的任意字符
    var reg = /./
    console.log(reg.test('abc'))//true
    console.log(reg.test('\r'))//false
    注意:
    如果要匹配点,不能直接写.,可以使用转义符/\./或者中括号[.]

3./\d/匹配任意数字:

        var num = /\d/
        console.log(num.test('dd'))//false
        console.log(num.test('123'))//true

4./\D/匹配非数字

        var reg3 = /\D/
        console.log(reg3.test('34'))// false
        console.log(reg3.test('34dfd'))// true

5./\w/匹配数字,字母,下划线任意字符

        var reg4 =/\w/
        console.log(reg4.test('14'))// true
        console.log(reg4.test('dsfsd'))//true
        console.log(reg4.test('_'))//true

6./\W/匹配非数字,字母,下划线任意字符

        var reg5=/\W/
        console.log(reg5.test('.'))// true
        console.log(reg5.test('333'))// false

7./s/匹配空字符 /\n/,/\r/,/t/,/ /

        var reg6 = /\s/
        console.log(reg6.test('\n'))//true
        console.log(reg6.test('\r'))//true
        console.log(reg6.test('\t'))//true
        console.log(reg6.test('sdf sdf '))//true

7./S/匹配非空字符 与/s/取反

8.\ 转义符

    var reg7 = /\// // 匹配一个正斜杠
    或者:var reg7 =/[/]/
    console.log(reg7.test('/')) // true
    var reg8 = /\\/     //匹配一个反斜杠
    console.log(reg8.test('\\')) //true 字符串'\\'表示的是\反斜杠
    var reg9 = /\./ // 匹配一个点
    console.log(reg8.test('sdfd.')) //true 

9.字符集合[]

        var reg = /[123abc]/  //匹配123abc的任意字符
        var reg = /[0-9]/     // 匹配0-9的任意字符
        var reg = /[a-z]/     // 匹配小写字母a-z
        var reg = /[A-Z]/     // 匹配大写写字母A-Z
        var reg = /[a-zA-Z]/     // 匹配大写字母A-Z或a-z任意字符
        var reg = /0-9a-z/    // 匹配0-9或a-z任意字符  
        // [^123] // 匹配非123
        var reg = /[^123]/
        console.log(reg.test('12'))     //false
        console.log(reg.test('1'))      //false
        console.log(reg.test('119'))    //true

* 表示0次或多次

        var reg = /\d*/
        console.log(reg.test('28'))//true

边界

       ^字符串最左边
       $字符串最右边
           var reg = /^abc/
           console.log(reg.test('abc123'))// true
           console.log(reg.test('123abc'))// false
           var reg = /abc$/;
           console.log(reg.test('abc123'))// false
           console.log(reg.test('123abc'))// true
           console.log(reg.test('123bc'))// false

           var reg = /^abc&/;//以abc开头并且以abc结尾
           console.log(reg.test('abc'))//true
           console.log(reg.test('123abc'))//false

           // 简单判断手机号码
           var reg = /^1\d\d\d\d\d\d\d\d\d\d$/
           var reg = /^1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/

量词


        (1) * 出现0次或多次
        var reg = /\d*/
        console.log(reg.test('abc123'))// true
        (2) + 出现1次或多次
        var reg = /1\d+/
        console.log(reg.test('11'))// true
        console.log(reg.test('1'))// false
        (3) ? 出现0次或1次
        var reg = /1\d+/
        console.log(reg.test('11'))// true
        console.log(reg.test('1'))// true
        (4) {n} 出现n次
        var reg = /123{3}}/  // 3出现3次
        console.log(reg.test('12333'))// true
        console.log(reg.test('123'))// false
        var reg = /(123){3}}/   123 出现三次
        console.log(reg.test('123123123'))// true
        console.log(reg.test('123123'))// false
        (5) {n,} 至少出现n次
        var reg = /123{3,}}/   123 至少出现三次
        console.log(reg.test('123123123'))// true
        console.log(reg.test('123123123123'))// true
        console.log(reg.test('123123'))// false
        (6) {n,m}出现至m次
        var reg = /123{3,5}}/   123 至少出现三次
        console.log(reg.test('123123123'))// true
        console.log(reg.test('123123123123'))// true
        console.log(reg.test('123123'))// false

| 或

            var reg = /abc|123/     // 匹配abc或者123
            console.log(reg.test('123'))//true
            console.log(reg.test('abc'))//true
            console.log(reg.test('sdfdfabc'))//true
            
            var reg = /^(abc|123)$/     // 匹配abc开头或者123结尾
            console.log(reg.test('sdfdfabc'))//true
            console.log(reg.test('123sdfdf'))//true

() 分组

            var reg = /(\d{3,4})-(\d{7,8})/     // 匹配手机号码
            console.log(reg.test('0775-12346789'))//true
            var arr = '0775-12346789'.match(reg)
            arr[0] // 全部
            arr[1] // 第一组:区号:0775
            arr[2] // 第二组:号码12346789

      urlParam() {
        let url = 'https://www.iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.d9df05512&cid=2706'
        const param = {}
        url.replace(/([^&=?]+)=([^&]+)/g, (m, $1, $2) => {
            debugger
            param[$1] = $2
          }
        )
        return param
      },
匹配把url的参数提取成一个对象

15.g 匹配全局

    var aa = '[Object Array]'
    aa.replace(/\[Object |\]/g,'') //"Array"

案例

1.去除字符串前后空格

let str = '   ffdsdf  df    '
str .replace(/^( ){1,}|( ){1,}$/g,'') // ffdsdf  df

相关文章

网友评论

      本文标题:javascript正则表达式全集

      本文链接:https://www.haomeiwen.com/subject/vruzhctx.html