正则表达式练习

  1. 以下正则表达式可以匹配从 1-64 的数字的有,即 1 2 3 … 63 64:()(深信服,2019.09)

    1
    2
    3
    4
    5
    A. /^[1-9]$|^[1-5]\d$|^6[1-4]$/
    B. /^[1-64]$/
    C. /^([1-9])|([1-5]\d)|(6[1-4])$/
    D. /^(([1-5]?[1-9])|(6[1-4]))$/
    E. /^(([1-5]?[1-9])|(6[1-4])|([1-5]0))$/

    答案:C

    检验

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    let r1 = /^[1-9]$|^[1-5]\d$|^6[1-4]$/ // 不能匹配 60
    let r2 = /^[1-64]$/ // 不能匹配 7-64
    let r3 = /^([1-9])|([1-5]\d)|(6[1-4])$/
    let r4 = /^(([1-5]?[1-9])|(6[1-4]))$/ // 不能匹配 个位数为 0 的两位数
    let r5 = /^(([1-5]?[1-9])|(6[1-4])|([1-5]0))$/ // 不能匹配 60

    let res1 = []
    let res2 = []
    let res3 = []
    let res4 = []
    let res5 = []
    for (let i = 1; i <= 64; i++) {
    if(!r1.test(i)) res1.push(`${i} false`)
    if(!r2.test(i)) res2.push(`${i} false`)
    if(!r3.test(i)) res3.push(`${i} false`)
    if(!r4.test(i)) res4.push(`${i} false`)
    if(!r5.test(i)) res5.push(`${i} false`)
    }

    res1 // [ '60 false' ]
    res2 // 7-64 都不匹配
    res3 // []
    res4 // 10、20、30、40、50、60都不匹配
    res5 // [ '60 false' ]
-------文章到此结束  感谢您的阅读-------