JavaScript 正则表达式

JavaScript 正则表达式

2020年12月05日 阅读:22 字数:625 阅读时长:2 分钟

正则表达式是匹配模式,要么匹配字符,要么匹配位置。可以不用,但得懂。

正则表达式是匹配模式,要么匹配字符,要么匹配位置。

1、匹配字符

1.1、字面量

匹配一个具体字符,包括不用转义的和需要转义的。比如/hello/匹配“hello”

1.2、字符组

匹配一个字符,可以是多种可能之一。

\d 就是[0-9]。表示是一位数字。记忆方式:其英文是digit(数字)。

\D 就是[^0-9]。表示除数字外的任意字符。

\w 就是[0-9a-zA-Z_]。表示数字、大小写字母和下划线。记忆方式:w是word的简写,也称单词字符。

\W 就是[^0-9a-zA-Z_]。非单词字符。

\s 就是[ \t\v\n\r\f]。表示空白符,包括空格、水平制表符、垂直制表符、换行符、回车符、换页符。记忆方式:s是space character的首字母。

\S 就是[^ \t\v\n\r\f]。 非空白符。

1.3、量词

{m,} 表示至少出现m次。

{m} 等价于{m,m},表示出现m次。

? 等价于{0,1},表示出现或者不出现。记忆方式:问号的意思表示,有吗?

+ 等价于{1,},表示出现至少一次。记忆方式:加号是追加的意思,得先有一个,然后才考虑追加。

* 等价于{0,},表示出现任意次,有可能不出现。记忆方式:看看天上的星星,可能一颗没有,可能零散有几颗,可能数也数不过来。

1.4、多选分支

分支结构当前面的匹配上,后面的就不再尝试了

var regex = /goodbye|good/g;
var string = "goodbye";
console.log( string.match(regex) ); // ["goodbye"]

2、匹配位置

位置是相邻字符之间的位置。

fd7be61624d74279.png

^(脱字符)匹配开头,在多行匹配中匹配行开头。

$(美元符号)匹配结尾,在多行匹配中匹配行结尾。

\b是单词边界,具体就是\w和\W之间的位置,也包括\w和^之间的位置,也包括\w和$之间的位置。

(?=p),其中p是一个子模式,即p前面的位置。(?!p)和(?=p)相反。

3、分组

引用分组是括号一个重要的作用,可以进行数据提取,以及更强大的替换操作。

3.1、提取数据

比如提取日期:

var regex = /(\d{4})-(\d{2})-(\d{2})/;

3.2、替换数据

把yyyy-mm-dd格式,替换成yyyy/mm/dd

var regex = /(\d{4})-(\d{2})-(\d{2})/;
var string = "2019-12-26";
var result = string.replace(regex, "$1/$2/$3");

反向引用:比如\2,表示引用第2个分组

 

参考资料:

推荐阅读

恰饭区

评论区 0

0/500

还没有评论,快来抢第一吧