目标:解决两个问题
- 不认识,怎么办?
- 不会写,怎么办?
/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/
实例化RegExp对象
字面量 :var reg = /\bis\b/g;
构造函数:var reg = new RegExp('\\bis\\b','g');
正则基础——修饰符
g 全局匹配(会查找所有匹配,不会在查找到第一个匹配时就停止)
i 执行对大小写不敏感的匹配
m 执行多行匹配
正则进阶——贪婪模式和非贪婪模式
// 贪婪模式(默认):
'1234ab'.replace(/\d{3,4}/g,'大')
// 非贪婪模式: 量词后加?
'1234ab'.replace(/\d{3,4}?/g,'大')
正则进阶——分组
// 使用()达到分组效果
'xingxing'.replace(/xing{2}/,'大’)
'xingxing'.replace(/(xing){2}/,'大')
正则进阶——或
// 使用 | 达到或的效果
Hai|xing
H(ai|xi)ng
正则进阶——前瞻和后顾
// 前瞻: exp1(?=exp2) 查找exp2前面的exp1
'window2003'.replace(/window(?=\d{4})/,'大')
// 负前瞻: exp1(?!exp2) 查找后面不是exp2的exp1
'window200'.replace(/window(?!\d{4})/,'大')
// 后顾(js不支持): (?<=exp2)exp1 查找exp2后面的exp1
'2003window'.replace(/(?<=\d{4})window/g,'大')
// 负后顾(js不支持): (?<!exp2)exp1 查找前面不是exp2的exp1
'200window'.replace(/(?<!\d{4})window/g,'大')
参考资料
可视化工具:https://jex.im/regulex
慕课网视频教程:https://www.imooc.com/video/1...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。