前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则表达式之javascript

正则表达式之javascript

作者头像
Jack Chen
发布2018-09-14 15:38:49
7900
发布2018-09-14 15:38:49
举报
文章被收录于专栏:ccylovehs

1.正则表达式的定义 描述字符模式的对象,JavaScript的RepExp类表示正则表达式

var pattern = new RegExp("s$"); <=> var pattern = /s$/;

2.直接量字符 \o NUL字符 \t 制表符 \n 换行符 \v 垂直制表符 \f 换页符 \r 回车

3.字符类 [...] 方括号内的任意字符 [^...] 不在方括号内的任意字符 . 除换行符和其他Unicode行终止符之外的任意字符 \w 任何ASCII字符组成的单词,等价于[a-zA-Z0-9] \W 任何非ASCII字符组成的单词,等价于[^a-zA-Z0-9] \s 任何Unicode空白符 \S 任何非Unicode空白符 \d 任何ASCII数字,等价于[0-9] \D 任何非ASCII数字,等价于[^0-9] [\b] 退格直接量

4.重复 {n,m} 匹配前一项至少n次,但不超过m次 {n,} 匹配前一项n次或者更多次 {n} 匹配前一项n次 ? 匹配前一项0次或者1次,等价于{0,1}

  • 匹配前一项至少1次或者更多次,等价于{1,}
  • 匹配前一项0次或者更多次,等价于{0,}

example: /\d{2,4}/ //匹配2~4个数字 /\w{3}\d?/ //匹配3个单词加一个可选数字 /\s+java\s+/ //匹配java单词前后至少一个空格 /[^(]*/ //匹配以一个或者多个左括号开始的字符

5.非贪婪 重复为尽可能的多匹配,非贪婪模式是尽可能的少匹配 ?? +? *?

example: {1,5}? //尽可能的匹配一个

6.选择分组引用 | 选择,匹配的是该符号左边的子表达式或者右边的子表达式 (...) 组合,将几个项组合为一个单元,这个单元可通过* + ? | 等符号加以修饰,而且记住和这个组合相匹配的字符串以供此后的引用使用 (?:...) 只组合,把项组合到一个单元,但不记忆与改组相匹配的字符 \n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也可能是嵌套的),组索引是从左到右的左括号数,(?: 形式的分组不编码

7.锚字符 ^ 匹配字符串的开头,在多行检索中匹配一行的开头 $ 匹配字符串的结尾,在多行检索中匹配一行的结尾 \b 匹配一个单词的边界,就是位于\w与\W之间的位置 \B 匹配非单词边界的位置 (?=p) 零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符 (?!=p) 零宽负向先行断言,要求接下来的字符都不与p匹配

8.修饰符 i 不区分大小写 g 全局匹配 m 多行匹配模式

9.用于模式匹配的String方法 search() “javascript”.search(/script/i); 如果匹配则返回对应索引,否则返回-1 replace() text.replace(/javascript/gi,"JavaScript"); 检索和替换 match() "1 plus 2 equals 3".match(/\d+/g); 返回["1","2","3"] split() "1,2,3,4,5".split(/\s,\s/);返回["1","2","3","4","5"]

10.RegExp对象 RegExp第一个参数包含正则表达式的主体部分,也就是直接量中两条斜线之间的文本,不论是字符串直接量还是正则表达式都使用  字符作为转义字符的前缀, 因此当给RegExp()传入一个字符串表述正则表达式时,必须将  替换成 \ 第二个参数是可选的,只能传 g i m,或者它们的组合 var zipcode = new RegExp("\d{5}","g");

RegExp属性 source:是一个只读字符串,包含正则表达式的文本 global:是一个只读的布尔值,用以说明这个正则表达式是否带有修饰符g ignoreCase:是一个只读的布尔值,用以说明正则表达式是否带有修饰符i multiline:是一个只读的布尔值,用以说明正则表达式是否带有修饰符m lastIndex:是一个可读/写的整数,如果匹配模式带有g修饰符,这个属性存储在整个字符串的下一次检索的开始位置,会被exec(),test()方法用到

RegExp方法 exec() 执行字符串的匹配检索,类似String.match(),都会返回一个数组 test() 当调用exec方法返回不为null则调用test方法返回为true

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档