JavaScript正则表达式总结

it2026-08-27  6

正则表达式匹配标识符

g:表示全局匹配模式,即该模式将被用于所有字符串,而非在发现第一个匹配项时立即停止;i: 对匹配项忽略大小写模式;m:表示多行模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项 注:如果需要多个标识同时使用时,则写成gmi

正则表达式创建方法

1、直接字面量创建

var exp = /\w+|\d+/g;

2、使用RegExp对象创建 通过对象创建,注意内部写法,例如:\d == \\d 需要转义

var exp = new RegExp("")

字符匹配

1、()、[ ] 、 { } 符号区别 () :表示子表达式,用于提取相匹配的字符串。表达式中有几个()就会得到几个相应的匹配字符串。例如(\s+)表示匹配连续空格字符。 [ ] : 表示匹配的字符范围。例如 [0-9 ],查找0至9范围内的数字,仅限数字。 { } :表示匹配长度。例如,\d{6} 表示匹配6个数字;\d{1,6}表示最少匹配一个数,最多匹配6个数;\d{1,}表示匹配1个数以上,贪婪匹配。

2、^ 和 $ 符号用法

// ^ 表示以字符开始 var reg = /^\d/ // 以数字开头 // $ 表示匹配以一个字符结尾 reg = /\d$/ // 以数字结尾 // 一般是以 ^ 与 $ 配合使用,用来匹配完整字符串 reg = /^1[3578]\d{9}$/ // 校验手机号格式是否正确

^ 字符,除了用于以字符匹配开始作用,还有个作用就是取反的作用,这个用法还是挺多的,例如:

var reg = /[^356]/g // 表示匹配除了356以外的字符

3、\d 、 \s 、 \w . 用法 \d:表示匹配一个非负整数,等价于 [0-9]; \s:表示匹配一个空白字符; \w:匹配一个英文字母或数字,等价于[0-9a-zA-Z]; . :匹配除了换行符以外的任意字符,等价于[^\n]

4、* + ?用法 *:贪婪匹配,表示匹配前面元素0次或多次; +:贪婪匹配,表示匹配前面字符1次或多次; ?:匹配前面0次或1次,惰性匹配等价于{0,1},例如(\w?)就是匹配最多由一个字母或数字组成的字符串

5、$1 和 \1后向引用 用法 $1-$9 表示存放着正则表达式中最近的9个正则表达式匹配到的结果,这些结果按照子匹配的出现顺序依次排列。例如:

// 使用RegExp var reg = /(\d+)-(\d+)-(\d+)/; reg.test("2020-11-11"); // RegExp.$n 静态方法 RegExp.$1 // 2020 // 在relpace中使用 "2020-11-11".replace(reg, "$1年$2月$3日") // 2020年11月11日 86

\1 表示后向引用,是指在正则表达式中,从左往右数,第1个子表达式()中的内容,以此类推,\2表示第2个子表达式(),\0表示整个表达式。例如:

//匹配日期格式,表达式中的\1代表重复(\-|\/|.) var rgx = /\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}"/ rgx.test("2016-10-24") //true rgx.test("2020-10.24") //false

正则方法

test() 和 match()

test() 用于检测字符串是否匹配该表达式,如果匹配就会返回 true 否则 false。例如:

/\d+/.test("1024") // true /\d+/.test("RegExp") // false

match() 是获取该正则表达式匹配到的结果,以数组的形式返回。例如:

"1024".match(/\d/g) // ["1","0","2","4"]

经典案例

[使用案例] https://www.jb51.net/article/118265.htm

参考链继

https://www.jb51.net/article/118265.htm https://blog.csdn.net/u012118993/article/details/78557669

最新回复(0)