正则表达式在JavaScript使用

2次阅读

共计 1396 个字符,预计需要花费 4 分钟才能阅读完成。

正则介绍

参考原文地址
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, 三个字符为英文字母

正文完
 0