为了账号安全,请及时绑定邮箱和手机立即绑定

非贪婪模式 ?

`123456789`.match(/\d{3,7}?/g);
// (3) ["123", "456", "789"]

`123456789`.replace(/\d{3,7}?/g, `xgqfrms?`);
// "xgqfrms?xgqfrms?xgqfrms?"


02:00
看视频
0
采集 0

2-10 JS对象属性

2017-03-19
RegExp.prototype.source 正则对象的源模式文本(RegExp 模式自身)。 let regex = /(\d{4}\1)-(\d{2})-(\d{2})/g; regex.source "(\d{4}\1)-(\d{2})-(\d{2})" regex.ignoreCase false regex.multiline false regex.sticky false regex.lastIndex 0 regex.global true regex.flags "g"
04:05
看视频
2
采集 3
## lastIndex bug??? http://www.imooc.com/video/12537 g test() lastIndex bug??? 执行多次,结果不一致! let regex = /\w/; let regexg = /\w/g; regexg.test("abc"); let regexg = /\w/g; regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); false regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); false
05:31
看视频
0
采集 0
## lastIndex bug??? http://www.imooc.com/video/12537 g test() lastIndex bug??? 执行多次,结果不一致! let regex = /\w/; let regexg = /\w/g; regexg.test("abc"); let regexg = /\w/g; regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); false regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); true regexg.test("abc"); false ## lastIndex bug??? 当前匹配结果的的最后一个字符的下一个字符位置, 首先匹配到a,a是当前匹配结果,最后一个字符仍是a, a的位置是0,true,下一个字符位置是1, b的位置是1,true,下一个字符位置是2, c的位置是2,true,下一个字符位置是3, ?的位置是3,false,下一个字符位置是0,
02:48
看视频
0
采集 0
字符串 => 数组 split()
07:19
看视频
1
采集 0
`a1b2c3d4e5f6g7`.replace(/\d/g, (match, index, origin)=>{ console.log(index); return parseInt(match) + 1; });
10:54
看视频
0
采集 0
`a1b2c3d4e5f6g7`.split(/\d/g); ["a", "b", "c", "d", "e", "f", "g", ""] `a1b2c3d4e5f6g7`.split(/[^\d]/g); ["", "1", "2", "3", "4", "5", "6", "7"] "a,b,c,d,e,f,g,1,2,3,4,5,6,7".split(","); "a,b,c,d,e,f,g,1,2,3,4,5,6,7".split(","); ["a", "b", "c", "d", "e", "f", "g", "1", "2", "3", "4", "5", "6", "7"] "a,b,c,d,e,f,g,1,2,3,4,5,6,7".split(/,/g) ["a", "b", "c", "d", "e", "f", "g", "1", "2", "3", "4", "5", "6", "7"]
08:34
看视频
1
采集 0
`a1b2c3d4e5f6g7`.replace(/\d/g, (match, index, origin)=>{ console.log(index); for(match of origin){ console.log(match); } return parseInt(match) + 1; });
13:42
看视频
0
采集 0
如果在数量词 *、+、? 或 {}, 任意一个后面紧跟该符号(?),会使数量词变为非贪婪( 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
`123abc456xyz789`.match(/(\d+[a-z]+){2}?/g,`smg`); ["123abc456xyz"] `123abc456xyz789`.replace(/(\d+[a-z]+){2}?/g,`smg`); "smg789"
01:53
看视频
0
采集 0
首页上一页123456下一页尾页

JavaScript正则表达式

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

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

Samaritan Web前端工程师

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

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信