正则介绍
参考原文地址
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)); //true
console.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',false
console.log(/^R/.test(find)); // 匹配首字母 'R',true
console.log(/r$/.test(find)); // 匹配最后一个字母 'r',false
console.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, 三个字符为英文字母