正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式,在 JavaScript中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法,
以及 String 的 match、matchAll、replace、search 和 split 方法。正则表达式可用于所有文本搜索和文本替换的操作。
==那就开始吧~==
语法
/正则表达式主体/修饰符(可选)
使用字符串方法
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search()方法
1 | /* |
结果:6
replace()
1 | /* |
结果:The quick brown Monkey jumps over the lazy dog. If the dog reacted, was it really lazy?
split()
1 | /* |
结果:['', 'z', 'v', 'f', 'n', 'i', 's']
match()
1 | /* |
结果:ain,ain,ain
使用 RegExp 对象
在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。
test()
1 | /* |
结果:true
exec()
1 | /* |
结果:e
正则表达式修饰符
- i : 执行对大小写不敏感的匹配。
- g : 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
- m : 执行多行匹配
正则表达式模式
括号
- [abc] : 查找方括号之间的任何字符
- [0-9] : 查找任何从 0 至 9 的数字
- (x|y) : 查找任何以 | 分隔的选项
元字符
- \d : 查找数字
- \s : 查找空白字符
- \b : 匹配单词边界
- \uxxxx : 查找以十六进制数 xxxx 规定的 Unicode 字符
- ^ : 表示开头
- $ : 表示结尾
量词
量词只对前一个内容起作用
- n+ : 匹配任何包含至少一个 n 的字符串
- n* : 匹配任何包含零个或多个 n 的字符串
- n? : 匹配任何包含零个或一个 n 的字符串
- ‘+’ : 至少一个
- ‘-’ : 0个
- {n} :正好出现n次
- {m,n} :出现m-n次
- {m, } : m次以上
小练习
去除以下字符串开头与结尾空格
1 | str = " he llo "; |
he llo
示例
- 测试输入数字是否为手机号码
思路:
- 手机号共11位
- 第一位为1 :^1
- 第二位为3-9的数字 : [3-9]
- 第三位以后为0-9的9位数字: [0-9]{9}$
1
2
3
4//注意^与$的使用
var phone = "13553597193";
var phoneReg = /^1[3-9][0-9]{9}$/
console.log(phoneReg.test(phone));true
- 测试邮箱账号是否符合规则
思路看注释
1 | /* |
true
OK~
参考
MDN Web Docs(https://developer.mozilla.org)
等等