正则表达式用于定义一些字符串的规则
计算机可以根据正则表达式,来检查一个字符串是否符合规则
或者将符合规则的字符串提取出来

创建正则表达式

你可以使用以下两种方法构建一个正则表达式:

  • 使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示:

var re = /正则表达式/匹配模式;
脚本加载后,正则表达式字面量就会被编译。
当正则表达式保持不变时,使用此方法可获得更好的性能。
(此方法更方便)

  • 或者调用RegExp对象的构造函数,如下所示:

var re = new RegExp("正则表达式","匹配模式");
在脚本运行过程中,用构造函数创建的正则表达式会被编译。
如果正则表达式将会改变,或者它将会从用户输入等来源中动态地产生,就需要使用构造函数来创建正则表达式。
(此方法更灵活)

匹配模式可以是
“i”:忽略大小写
“g”:全局匹配模式(可查找多个内容)
“m”:多行匹配

正则表达式语法

  • var reg =/a|b/i; 可以用“|”表示或,此式表示检查是否有a或者b,不区分大小写
  • var reg =/[a-z]/; []里的内容也可表示为或的关系,此式表示任意小写字母
    • var reg =/[A-Z]/; 表示任意大写字母
    • var reg =/[A-z]/; 表示任意字母
  • var reg =/[^A-z]/; 可以用[^…]表示除了…之外,此式表示除了字母之外
    • var reg =/0-9/; 除了数字之外
  • var reg =/a{3}/; 此方法可以设置一个内容出现的次数,此式等同于/aaa/
    • var reg =/(ab){3}/; 等同于/ababab/
    • var reg =/ab{3}/; 等同于/abbb/
    • var reg =/ab{1,3}/; b{1,3}表示b出现1~3次
    • var reg =/ab{2,}/; b{2,}表示b出现2次以上
  • var reg =/b+/; b+表示b出现至少一次,等同于b{1,}
  • var reg =/b*/; b*表示b出现0次或多次,等同于b{0,}
  • var reg =/b?/; b?表示b出现一次或0次,等同于b{0,1}
  • var reg =/^a/; ^a表示a是第一个出现的,头是a,以a开头
  • var reg =/a$/; a$表示以a结尾
    • var reg =/^a$/; ^a$表示以a开头也以a结尾,即只有元素a
  • var phoneNumber =/^1[3-9][0-9]{9}$/; 手机号
  • var reg =/./; 正则表达式中,”.”可以表示任意字符,”.“加上转义字符”\”表示字符”.”

补充:

  • \w 匹配一个单字字符(字母、数字或者下划线)。等价于 [A-Za-z0-9_]。
  • \W 匹配一个非单字字符。等价于 [^A-Za-z0-9_]。
  • \d 匹配一个数字。等价于[0-9]。
  • \D 匹配一个非数字字符。等价于[^0-9]。
  • \s 匹配一个空白字符,包括空格、制表符、换页符和换行符。
  • \S 匹配一个非空白字符。
  • \b 匹配一个词的边界。
  • \B 匹配一个非单词边界。
  • 不常用:
    • \f 匹配一个换页符 (U+000C)。
    • \n 匹配一个换行符 (U+000A)。
    • \r 匹配一个回车符 (U+000D)。