正则表达式

创建正则语法

let 变量名 = /表达式/

其中 / / 是正则表达式的字面量

判断是否是有符合规则的字符串

test(): 用来查看字符串是否符合正则规则

  • 是符合,返回true
  • 不符合,返回false

语法:正则表达式.test(被检测的字符串)

检索(查找)符合规则的字符串

exec(): 在字符串中搜索匹配的字符串部分

语法:正则表达式.exec(被检测字符串)

  • 如果匹配成功,则返回一个数组
  • 如果匹配失败,则返回一个null
let str = '我是测试文字'
let reg = /文/
let result = reg.exec(str)
console.log(result) // 返回的是一个数组

替换字符串

replace()

//要替换的字符串.replace(正则表达式,替换的内容)
let str = '我是谁 你是谁 他是谁'
let reg = /谁/g
console.log(str.replace(reg, '你'))
//我是你 你是你 他是你

#使用正则表达式

元字符

有特殊含义,可以匹配更多规则,如:/[a-z]/

#使用特殊字符

边界符

表示位置,开头和结尾,必须用什么开头,用什么结尾

边界符含义
^匹配输入的开始。
$匹配输入的结束。

^ 作为第一个字符出现在一个字符集合模式时,它将会有不同的含义.

注意点:^$一起使用时,表示精准匹配,从头到尾都要符合,常用语表单校验

量词

表示重复次数

量词含义
*重复零次或更多次>=0
+重复一次或更多次>=1
?重复0次或1次 0 || 1
{n}重复n次==n
{n,}重复n次或更多次>=n
{n,m}重复n到m次n <= 次数 <= m

注意点: 逗号左右两侧不能出现空格

字符类

特定的字符表示特定的匹配规则

  • [xxx] 只要字符串中有[]其中任何一个字符,就匹配成功
console.log(/[abc]/.test('andy')) //a
console.log(/[abc]/.test('baby')) //b
  • [] 里面有中划线 - ,表示一个范围 只要字符串的其中一个符合范围,就匹配成功
[0-9] :0~9的范围
[a-z] :a~z的范围
[A-Z] :A~Z的范围
[0-9a-zA-Z] :0~9 + a~z + A~Z 的范围
  • [] 里面有一个^表示取反 只有字符串中有一个符合范围,就匹配成功
[^abc] :除了abc以外的字符
  • . 匹配除换行符以外的任何单个字符(如果加了s标志则可以匹配换行符)
console.log(/.b/.test('abc')) //ab
console.log(/.i/.test('liao')) //li

注意点:换行符指的是js字符串中的换行,是\n,不是<br>

预定义类

预定义类含义
\d匹配0-9的任意数字,相当于[0-9]
\D匹配0-9以外的字符,相当于[^0-9]
\w匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
\W除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
\s匹配不可见字符,如:空格、换行\n、制表符tab \t
\S匹配可见字符

#预定义类

修饰符(标志)

语法:/表达式/修饰符

标志描述
g全局搜索
i不区分大小写搜索
s允许 . 匹配换行符
console.log(/a/g.test('banana')) //a

console.log(/a/i.test('A')) //A

console.log(/a./s.test('ba na na')) //a空格

#通过标志进行高级搜索

详细内容请前往正则表达式 – JavaScript | MDN

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注