RegExp是什么?
- RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配。
- 通常用于格式验证、正则替换、查找子串等
- 各种编程语言的正则表达式基本相同,不同的语言可能会有一些细小的差别
- 推荐一个在线验证的工具https://regex101.com
量词
量词 | 作用 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串。同 {1,} |
n* | 匹配任何包含零个或多个 n 的字符串。同 {0,} |
n? | 匹配任何包含零个或一个 n 的字符串。同 {0,1} |
n{X} | 匹配包含 X 个 n 的序列的字符串。 |
n{X,Y} | 匹配包含 X 至 Y 个 n 的序列的字符串。 |
n{X,} | 匹配包含至少 X 个 n 的序列的字符串。 |
n$ | 匹配任何结尾为 n 的字符串。 |
^n | 匹配任何开头为 n 的字符串。注意 /[^a] / 和 /^ [a]/是不一样的,前者是排除的,后者是代表首位。 |
(?=n) | 匹配任何其后紧接指定字符串 n 的字符串。正向预查 |
(?!n) | 匹配任何其后没有紧接指定字符串 n 的字符串。反向预查 |
RegExp 对象方法
test()
test()
方法检索字符串中是否存在指定的值。返回值是 true 或 false。
1 | //判断是不是QQ号 |
exec()
exec()
方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
1 | var patt1 = new RegExp('e'); |
compile()
compile()
既可以改变检索模式,也可以添加或删除第二个参数。
1 | var patt1=new RegExp("e"); |
支持正则表达式的String对象的方法
search 检索与正则表达式相匹配的值。
1 | var str = "Visit W3School!"; |
replace替换与正则表达式匹配的子串。
1 | var str = "Visit Microsoft!"; |
1 | // 找重复项最多的字符个数 |
match找到一个或多个正则表达式的匹配。
1 | var str = "1 plus 2 equal 3" |
split把字符串分割为字符串数组。
1 | var str = " How are you doing today?" |
经验:
- 检验格式(邮箱格式、IP格式)是否正确,用test()
- 抓取信息(如所有手机号),用exec()、match()
- 替换敏感词汇,用replace()
常见的正则表达式校验
校验数字的表达式
1 | 1.数字:^[0-9]*$ |
校验字符的表达式
1 | 1. 汉字:^[\u4e00-\u9fa5]{0,}$ |
特殊需求表达式
1 | 1.Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
v1.5.2