为了账号安全,请及时绑定邮箱和手机立即绑定
如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( non-greedy) ,即匹配次数最小化。反之,默认情况下,是贪婪的(greedy),即匹配次数最大化。 `123456789`.replace(/\d{3,7}/=); https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match 当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。 str.match(regexp); `123456789`.replace(/\d{3,7}/,`xyz`); "xyz89" `123456789`.replace(/\d{3,7}?/,`xyz`); "xyz456789"
00:34
看视频
0
采集 0

2-8 分组

2017-03-19
分组(Grouping)与反向引用(back references) 字符 含义 (x) 匹配 x 并且捕获匹配项。 这被称为捕获括号(capturing parentheses)。 例如,/(foo)/ 匹配且捕获 "foo bar." 中的 "foo"。被匹配的子字符串可以在结果数组的元素 [1], ..., [n] 中找到,或在被定义的 RegExp 对象的属性 $1, ..., $9 中找到。 捕获组(Capturing groups)有性能惩罚。如果不需再次访问被匹配的子字符串,最好使用非捕获括号(non-capturing parentheses),见下面。 \n n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串。 例如,/apple(,)\sorange\1/ 匹配 "apple, orange, cherry, peach." 中的 "apple,orange,"。一个更全面的例子在该表格下面。 (?:x) 匹配 x 不会捕获匹配项。这被称为非捕获括号(non-capturing parentheses)。匹配项不能够从结果数组的元素 [1], ..., [n] 或已被定义的 RegExp 对象的属性 $1, ..., $9 再次访问到。
01:53
看视频
0
采集 0

2-8 分组

2017-03-19
`123abc456xyz789`.match(/(\d+[a-z]+){2}?/g,`smg`); ["123abc456xyz"] `123abc456xyz789`.replace(/(\d+[a-z]+){2}?/g,`smg`); "smg789"
01:53
看视频
0
采集 0

2-8 分组

2017-03-19
x|y 匹配 x 或 y 例如,/green|red/ 匹配 "green apple" 中的 ‘green',"red apple." 中的 'red'。
02:51
看视频
0
采集 0

2-8 分组

2017-03-19
反向引用(back reference) \n n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串。 例如,/apple(,)\sorange\1/ 匹配 "apple, orange, cherry, peach." 中的 "apple,orange,"。一个更全面的例子在该表格下面。
04:28
看视频
0
采集 0
如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( non-greedy) ,即匹配次数最小化。 反之,默认情况下,是贪婪的(greedy),即匹配次数最大化。 `123456789`.match(/\d{3,4}/); ["1234"] `123456789`.match(/\d{3,4}/g); ["1234", "5678"] `123456789`.match(/\d{3,4}?/); ["123"] `123456789`.match(/\d{3,4}?/g); ["123", "456", "789"] https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/match 当一个字符串与一个正则表达式匹配时, match()方法检索匹配项。 str.match(regexp);
02:01
看视频
0
采集 0

2-9 前瞻

2017-03-19
在使用于向前断言(lookahead assertions)时,见该表格中 (?=)、(?!) 和 (?:) 的说明 x? 匹配前面的模式 x 0 或 1 次。 例如,/e?le?/ 匹配 "angel" 中的 "el","angle" 中的 "le"。 如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( non-greedy) ,即匹配次数最小化。反之,默认情况下,是贪婪的(greedy),即匹配次数最大化。 在使用于向前断言(lookahead assertions)时,见该表格中 (?=)、(?!) 和 (?:) 的说明。 x(?=y) 只有当 x 后面紧跟着 y 时,才匹配 x。 例如,/Jack(?=Sprat)/ 只有在 'Jack' 后面紧跟着 'Sprat' 时,才会匹配它。/Jack(?=Sprat|Frost)/ 只有在 'Jack' 后面紧跟着 'Sprat' 或 'Frost' 时,才会匹配它。然而,'Sprat' 或 'Frost' 都不是匹配结果的一部分。 x(?!y) 只有当 x 后面不是紧跟着 y 时,才匹配 x。例如,/\d+(?!\.)/ 只有当一个数字后面没有紧跟着一个小数点时,才会匹配该数字。 /\d+(?!\.)/.exec("3.141") 匹配 141 而不是 3.141。 (?:x) 匹配 x 不会捕获匹配项。这被称为非捕获括号(non-capturing parentheses)。匹配项不能够从结果数组的元素 [1], ..., [n] 或已被定义的 RegExp 对象的属性 $1, ..., $9 再次访问到。
01:48
看视频
0
采集 0

2-4 范围类

2017-03-19
\w 匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。等价于 [A-Za-z0-9_]。 例如,/\w/ 匹配 "apple" 中的 'a',"$5.28" 中的 '5' 和 "3D" 中的 '3'。 \W 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于 [^A-Za-z0-9_]。 例如,/\W/ 或 /[^A-Za-z0-9_]/ 匹配 "50%" 中的 '%'。
01:42
看视频
2
采集 1
字符类别(Character Classes) . === [^\r\n] . (点号,小数点) 匹配任意单个字符,但是回车\r换行\n符除外:\n \r \u2028 或 \u2029。 在字符集中,点( . )失去其特殊含义,并匹配一个字面点( . )。 需要注意的是,m 多行(multiline)标志不会改变点号的表现。因此为了匹配多行中的字符集,可使用[^] (当然你不是打算用在旧版本 IE 中),它将会匹配任意字符,包括换行符。 例如,/.y/ 匹配 "yes make my day" 中的 "my" 和 "ay",但是不匹配 "yes"。 \d 匹配基本拉丁字母表(basic Latin alphabet)中的一个数字字符。等价于[0-9]。 例如,/\d/ 或 /[0-9]/ 匹配 "B2 is the suite number." 中的 '2'。 \D 匹配任意一个不是基本拉丁字母表中数字的字符。等价于[^0-9]。 例如,/\D/ 或 /[^0-9]/ 匹配 "B2 is the suite number." 中的 'B'。 \w 匹配任意来自基本拉丁字母表中的字母数字字符,还包括下划线。等价于 [A-Za-z0-9_]。 例如,/\w/ 匹配 "apple" 中的 'a',"$5.28" 中的 '5' 和 "3D" 中的 '3'。 \W 匹配任意不是基本拉丁字母表中单词(字母数字下划线)字符的字符。等价于 [^A-Za-z0-9_]。 例如,/\W/ 或 /[^A-Za-z0-9_]/ 匹配 "50%" 中的 '%'。 \s 匹配一个空白符,包括空格、制表符、换页符、换行符和其他 Unicode 空格。 例如 /\s\w*/ 匹配 "foo bar" 中的 ' bar'。 \S 匹配一个非空白符。 例如,/\S\w*/ 匹配 "foo bar" 中的 'foo'。
00:33
看视频
1
采集 0

2-4 范围类

2017-03-19
字符集合(Character Sets) 字符 含义 [xyz] 一个字符集合,也叫字符组。匹配集合中的任意一个字符。你可以使用连字符'-'指定一个范围。 例如,[abcd] 等价于 [a-d],匹配"brisket"中的'b'和"chop"中的'c'。 [^xyz] 一个反义或补充字符集,也叫反义字符组。也就是说,它匹配任意不在括号内的字符。你也可以通过使用连字符 '-' 指定一个范围内的字符。 例如,[^abc] 等价于 [^a-c]。 第一个匹配的是 "bacon" 中的'o' 和 "chop" 中的 'h'。
00:41
看视频
1
采集 0

JavaScript正则表达式

  • 难度中级
  • 时长 1小时30分
  • 人数1812
  • 评分9.7

很多人对正则表达式的印象是很强大、很难学、记不住。本次课程可信目标就是让大家不是记住正则表达式,而是理解正则表达式,借助图形化工具让大家直观的感受正则表达式,用起来得心应手,挥洒自如。你懂了正则表达式真的很简单!

Samaritan Web前端工程师

现就职于一线互联网企业的前端开发工作,对 CMS 系统有深入理解,涉及到本地模块开发工具、 构建,线上代码运维

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号