正则介绍
参考原文地址
https://dev.to/chrisachard/in...
正则表达式是自定义一个规则,用于匹配字符串中符合规则的内容
在Javascript中定义正则表达式有两种方式:
- 定义于两个下划线之间
/[正则表达式]/
- 通过
new RegExp()
方式
结合三个方法来实现不同的功能:
- match 将匹配到的内容返回到一个数组中
- test 判断是否符合规则
- replace 匹配成功后替换内容
正则实例
废话少说,咱们来看代码吧
1、首先定义两个正则表达式
//匹配'r'const regOne = /r/i;//匹配'ed'const regTwo = new RegExp('ed', 'i');
说明:new RegExp中第一个参数其实对应的就是两个下划线之间的规则,第二个参数对应的是下划线后面的规则(后面介绍)
2、来看看三个方法的使用
let find = 'red';console.log(find.match(regOne)); //['r']console.log(find.match(regTwo)); //['ed']console.log(regOne.test(find)); //trueconsole.log(find.replace(regOne , 'R')); //Red
正则定义方法
中括号的使用
中括号的作用是定义一个匹配的范围,使用-
将范围的起始值和结束值连接起来,例如:
- [a-z] 只匹配小写字母,即a到z之间的字符
- [A-Z] 只匹配大写字母,即A到Z之间的字符
- [1-9] 只匹配1到9之间的数字
/[1-9]/new RegExp('[a-z]', 'i');
匹配模式
匹配模式定义查找的方式,有三种正则的匹配模式:
- i 不区分英文字母的大小写
- m 匹配多行文本
- g 全局匹配,默认情况下匹配到第一个符合规则的内容就不会往下继续查找,设置了全局模式之后,就会查找所有符合规则的内容
1、单个模式实例
let find = 'Rred';const regOne = /r/i; //匹配'r'console.log(find.match(regOne)); //['R']
匹配到R之后返回结果并停止查找,隐藏只返回了一个R
2、两种模式同时使用
let find = 'Rred';const regOne = /r/ig; //匹配'r'console.log(find.match(regOne)); //['R','r']
本示例查找字符串中所有的大小写英文字母r
首尾匹配
首尾匹配即首字符和最后一个字符的匹配
- 使用
^
匹配首字符 - 使用
$
匹配最后一个字符
1、简单实例
let find = 'Rred';console.log(/^r/.test(find)); //匹配首字母'r',falseconsole.log(/^R/.test(find)); //匹配首字母'R',trueconsole.log(/r$/.test(find)); //匹配最后一个字母'r',falseconsole.log(/d$/.test(find)); //匹配最后一个字母'd',true
2、匹配多个字符
let find = 'Rred';console.log(/[a-z][a-z][0-9]/.test(find)); //false,第一第二个字符为英文字母,第三个字符为数字console.log(/[a-z][a-z][a-z]/.test(find)); //true,三个字符为英文字母