• JavaScript正则表达式(一)


    正则表达式创建方式

    两种:

    1. var reg = /xxxxx/
    2. var reg = new RegExp('xxxxx') 或 var reg = new RegExp(/xxxxx/)

    JavaScript正则表达式对象内置方法

    • exec() 与字符串方法match()类似
    • test()

    元字符

    ( [ { ^ $ | ) ? * + .

    []: 表示范围内选择

    /[abc]/ 意思是,在一个位置可以出现的字符可能为a或b或c
    eg:

    /[abc]/.test('a') === true
    

    (): 允许重复多个字符(分组)
    eg:

    // count字符串连续出现两次 countcount
    /(count){2}/.test('countcount') === true
    // 匹配 bad 或 dad  并且每个只能出现零次或者一次
    ([bd]ad?)
    

    量词

      • 出现0次或者多次
    • ? 出现零次或者一次
      • 出现一次或者多次
    • {n} 对应n次
    • {n,m} 对应n~m次
    • {n, } 至少n次

    贪性量词 惰性量词

    贪性量词: 指上面所有的简单量词
    特点 : 匹配时,拿到整个字符串,从后往前,不匹配的去除
    eg:

    var str = 'aabbcccddaaabbbccccbbbb111'
    var reg = /.*ccc/g //贪婪
    console.log(reg.exec(str)) //["aabbccddaaabbbcccc", index: 0, input: "aabbccddaaabbbccccbbbb111", groups: undefined]0: "aabbccddaaabbbcccc"groups: undefinedindex: 0input: "aabbccddaaabbbccccbbbb111"length: 1__proto__: Array(0)]
    console.log(str.match(reg)) //["aabbccddaaabbbcccc"]
    

    惰性量词: 在简单量词后加'?'
    特点: 与贪性量词相反,从首个字符开始匹配

    var str = 'aabbcccddaaabbbccccbbbb111'
    var reg = /.*?ccc/g;
    console.log(reg.exec(str)) 
    console.log(str.match(reg))
    // ["aabbccc", index: 0, input: "aabbcccddaaabbbccccbbbb111", groups: undefined]
    // ["aabbccc", "ddaaabbbccc"]
    
    

    分组

    "baddad".match(/([bd]ad?)*/)
    结果:
     ["baddad", "dad", index: 0, input: "baddad", groups: undefined]
    
    第一个参数 为 正则匹配结果, 第二个参数 为 分组(括号内)的表达式匹配的结果
    

    如果不想匹配到括号内的结果, 可以使用非捕获性分组?:

    "baddad".match(/(?:[bd]ad?)*/)
    
    结果:
    ["baddad", index: 0, input: "baddad", groups: undefined]
    

    候选 (管道符 | )

    var reg = /this is a apple|banana|orange/
    reg.test('this is a apple') === true
    reg.test('this is a banana') === true
    
    
  • 相关阅读:
    day08超市商品库存案例
    day07
    day06_03
    day06_02
    day06_01
    最简单的库存管理java案例
    Day05_homework
    方法的使用注意事项
    day05
    冒泡排序
  • 原文地址:https://www.cnblogs.com/lmx093418/p/10025777.html
Copyright © 2020-2023  润新知