正则表达式用于定义一些字符串的规则
计算机可以根据正则表达式,来检查一个字符串是否符合规则
或者将符合规则的字符串提取出来
创建正则表达式
你可以使用以下两种方法构建一个正则表达式:
- 使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示:
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)。