正则表达式

1.生成一个正则表达式regexObj

  • 描述字符串规则的表达式,两种方式

    • 直接量: /pattren/attrs(/规则/属性)

    • 对象构造方式:new RegExp(pattern,arrtes) (/规则/属性)

2.regexObj.test(str)

  • 测试正则表达式regexObj与指定字符串是否匹配

/10086/.test('10086') //true
/10086/.test('12314') //false
/10086/.test('x10086s') //true //true
  • 由此看到.test()匹配了正则表达式,但是最后一条出来了一个问题。如果这种情况下/10086/.test('x10086s')正则表达式匹配到该字符串中确实含有此正则表达式

  • 所以必须要有一些限制,以下就是限制方法

锚点

  • 我们可以通过一个锚点匹配一个位置

    • ^:起始位置

    • $ :结尾位置

    • \b :单词边界

example1

  • 这种方法只能检测固定的号码,但是我们想检测同类的手机号码,所以就需要用到如下 字符类

字符类

  • 匹配一类字符中的一个,采用[],相当于限定字符集

    • [abc]:a或b或c

    • [0-9]:一个数字

    • [^0-9]:非数字的一个字符

    • [a-z]:一个字母

    • .:任意一个字符(除还行外)

example2

  • [0-9]可以被优化,所以学习到了元字符,元字符是具有特殊意义的字符

元字符

  • 具有特殊意义的字符

    • ^$\b

    • \d[0-9]

    • \D[^\d]

    • \s:空白符

    • \S[^\s]

    • \w[A-Z]

    • \W[^\w]

example3

  • 不过呢,想一下这些\d都是重复的,所以需要用到量词

量词

  • 出现的次数

    • {m,n}:m到n次

    • *{0,} 出现0或n次

    • ?{0,1} 出现0或者1次

    • +{1,} 出现1或n次

最后更新于

这有帮助吗?