首页 > 代码库 > JavaScript正则表达式

JavaScript正则表达式

自我理解的概念: 自定义相应规则,用以准确匹配想要的字符或字符串,同时排除自己不想匹配的字符或字符串。


元字符
\b 匹配单词的开头或结尾,即单词的分界处,是一个位置,它的前一个字符和后一个字符不全是(一个是,一个不是或不存在)\w,并不匹配分隔符之类的字符。
例:\bhello\b 匹配单词hello

. 匹配除了换行符(\n,ASCII编码为10,十六进制0X0A)以外的任意字符。

\d 匹配一位数字(0,1,2,3,…)。

\s 匹配任意的空白符,包括空格,制表符(Tab),换行符(\n),中文全角空格等。

\w 匹配字母或数字或下划线或汉字等。

^ 匹配字符串的开始。

$ 匹配字符串的结束。

* 指定*前面的内容可以连续重复使用任意次(可能是0次)。
例:.* 任意数量的不包含换行的字符

+ 指定+前面的内容可以连续重复使用1次或更多次。

? 指定?前面的内容可以重复使用0次或1次。

{n} 指定{n}前面的内容可以重复使用n次。

{n,} 指定{n,}前面的内容可以重复使用n次或更多次。

{n,m} 指定{n,m}前面的内容可以重复使用n到m次。

[aeiou.?!] 匹配方括号里面的任意一个字符。注意空格也能被匹配。

[0-9]和\d完全一样;只考虑英文,[0-9a-zA-Z]和\w一样。此处是指定字符范围方法。

| 分枝条件,相当于布尔代数里的或。注意,正则表达式从左到右开始匹配,若某一分枝得到满足,则不再管其他分枝条件了。
例:\d{5}-\d{4}|\d{5},匹配美国邮编(用连字符间隔5-4的9位数字或者5位数字)。这时不能将后分枝写在前面。

() 分组。用小括号指定子表达式。
例:ip地址 ((2(5[0-5]|[0-4]\d)|[01]?\d?\d)\.){3}(2(5[0-5]|[0-4]\d)|[01]?\d?\d)

\W 匹配任意不是字母,数字,下划线,汉字的字符。

\S 匹配任意不是空白符的字符。

\D 匹配任意非数字的字符。

\B 匹配不是单词开头或结束的位置。

[^x] 匹配除了x以外的任意字符。

[^aeiou] 匹配除了aeiou这几个字母意外的任意字符。

JavaScript正则表达式