JS正则表达式规则笔记

实现方式

正则赋值

 var rg = /0-9/g
 var str = "967"

test返回一个布尔值,表示当前模式是否能匹配参数字符串

 rg.test(str)

exec用来返回匹配的结果。如果发现匹配,就返回一个数组,数组中的成员都是匹配的字符串,否则返回null

 rg.exec(str)

字符串方法

match对字符串进行正则匹配,返回匹配的数组,否则返回null

 str.match(rg)

search返回第一个满足条件的匹配结果在整个字符串中的索引,如果没有匹配,则返回-1

str.search(rg)

replace可以替换匹配的值,他接受两个参数,第一个是正则表达式,表示模式,第二个是替换的内容

var timeData = "2021.09.12"  
timeData.replace(/.\/g,"-")

元字符

转义字符

\
.\ =  .

匹配任意的字符

. 

^ $ 匹配位置字符

^ 匹配字符串开始的位置
$ 匹配字符串结束的位置

匹配数字和字母(\w 和 \W)

\w 匹配数字和字母
\W 匹配非数字和字母

匹配数字和非数字(\d 和 \D)

\d 匹配数字
\D 匹配非数字

匹配空白字符(\s 和 \S)

\s 匹配空白字符
\S 匹配非空白字符

匹配里面的任意字符

[] 

匹配所有的中文

 /[\u4e00-\u9fa5]/g 

匹配除a和z之外的所有字符

[^a-z]

匹配重复一次或者多次

  +

多个集合

 /[mM][zZ]/g 

匹配重复0次或者多次

 *

匹配重复1次或者0次(可有可无)

?

分组匹配

()

分组匹配捕获多组(第1组)

RegExp.$1

此分组匹配不捕获

(?:http|https)(xxx)

或者

 |
(http|https)

匹配重复的次数(a匹配五次)

a {5}

最少4位 最多8位

{4,8}

正向肯定预查 ,只匹配元前面的字符,但不匹配元(?=)

/\d+(?=元)/g 

正向否定预查 表示不是元的字符

/\d+(?!元|\d)/g 

反向肯定预查 表示肯定是@,但不匹配(?<= )

/(?<!@)\d+/g 

反向否定预查 表示肯定不是@,不匹配(?<!)

/(?<@元|\d)\d+/g 

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):