前端技术
Web
正则表达式
目录 CONTENTS
正则表达式
[1]
web
一个正则表达式是由普通字符(如a~z)以及特殊字符(称为元字符)组成的模式字符串。
该模式字符串描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
1、字符类
代码
说明
示例
[...]
匹配方括号中字符序列的任意一个字符。其中可以使用连字符"-"匹配指定范围内的任意字符。
/[012]/可以与0A1B2C中的字符0或1或2匹配.
/[0-5]/可以与a3g02gsf91dfs4中的0到5之间的任意数字字符匹配
[^...]
匹配方括号中字符序列未包含的任意字符。其中可以使用连字符"-"匹配不在指定范围内的任意字符。
/[^012]/可以与0A1B2C中的除0、1、2之外的任意字符匹配,在这里匹配A或B或C
/[^a-z]/可以与a3g02gsf91dfs4不在小写字母a-z之间的任意字符匹配。
.
匹配除了换行和回车之外的任意字符,相当于[^\r\n]
\d
匹配任意一个数字字符,相当于[0-9]
/\d\d/可以匹配wy32k中的32
\D
匹配任意非数字字符,相当于[^0-9]
/\D/可以匹配wy3k中的w或y或k
\s
匹配任意空白字符,如空格、制表符、换行符等,相当于[\t\n\x0B\f\r]
/\s\d\d/可以匹配my age is 20注意2前面的空格。
\S
匹配任意非空白符,相当于[^\t\n\x0B\f\r]
/\S/可以匹配A B中的A或B
\w
匹配任何英文字母、数字字符以及下划线,相当于[a-zA-Z0-9_]
/\w/可以匹配shdf82w09_+&^中的字母、数字、下划线
2、量词
代码
说明
示例
?
匹配前一项0次或1次
/JS?/可以匹配JScript中的JS或者JavaScript中的J
+
匹配前一项1次或多次,但至少出现1次
/JS+/可以匹配JS,也可以匹配JSSSS或者JSSSSSS,也就是说可以匹配J后面出现一个或多个S。
*
匹配前一项0次或者多次,也就是任意次
/bo*/可以匹配b、bo、boo、boooo之类的字符串
{n}
匹配前一项恰好n次,其中n为非负整数
/o{2}/可以匹配book中的两个o,也可以匹配booook中任意两个连续的o
{n,}
匹配前一项至少n次
/o{2,}/不匹配home中的o,因为至少要匹配两个o。所以可以匹配good或者gooooood中的所有o
{n,m}
匹配前一项至少n次,但不能超过m次,其中n、m是非负整数,并且n<=m
在使用{n,m}时,数字与逗号之间不能有空格符
/o{2,5}/可以匹配book中的两个o,也可以匹配boooook中的5个连续的o
3、指定匹配位置
代码
说明
示例
^
匹配字符串的行开头。^必须出现在指定字符串的最前面才起作用。
/^g/匹配good中的g,但不匹配bag中的g
$
匹配字符串的行结尾。$必须出现在指定字符串的最后面才起作用。
/g$/匹配bag中的g,但不匹配good中的g
\b
匹配单词的边界
/e\b/匹配"I love seek"中love的e,不匹配seek中的e
\B
匹配单词的非边界
/e\B/匹配"I love seek"中seek的e,不匹配love中的e
4、使用选择匹配符
正则表达式的选择匹配符只有一个"|",使用"|"可以匹配指定的多个选项中的任意一项。
例如/World|Dream/可以匹配"One World One Dream"中的World或者Dream
5、分组
分组就是使用小括号将多个单独的字符或字符类组合成子表达式,以便可以像处理一个独立的单元那样,用"|"、"*"、"+"或者"?"等来处理他们。比如/J(ava)?Script/可以匹配JavaScript,也可以匹配JScript
6、通过RegExp类的构造方法创建
语法格式:new RegExp(pattern[,flags])
pattern:必选参数,用于指定需要进行匹配的模式字符串。
flags:可选参数,用于指定正则表达式的标志信息。
g:全局标志。如果设置了该标志,对于某个文本执行搜索或者替换时,将对文本中的所有匹配部分起作用,否则仅搜索或替换第一次匹配的内容。
i:忽略大小写标志。
m:多行标志。如果不设置这个标志,那么^只能匹配字符串的开头,$只能匹配字符串的结尾;如果设置了这个标志,那么^可以匹配多行字符串的每一行的开头,$可以匹配多行字符串的每一行的结尾。
例
web前端技术8 来自淘豆网m.daumloan.com转载请标明出处.