正则表达式

本文详细介绍了正则表达式的创建、修饰符、方法,包括test(), exec(), replace()等,以及元字符的用法和示例。涵盖了不区分大小写、多行搜索、字符匹配等内容,适合IT技术人员深入理解与实践。
摘要由CSDN通过智能技术生成

正则表达式:是由普通字符及特殊字符(元字符)组成的对字符串进行过滤的逻辑公式

创建方式:

  1. 字面量(常用) var reg1 = /abc/ ; " abc"
  2. 构造函数 var reg2 = new RegExp ( " abc" ) ; " abc "

修饰符

  • i const reg = / study / i ; i 是修饰符,表示不区分大小写;
  • g const reg = / study / g g 修饰符可以查找字符串中所有的匹配项;
  • s s修饰符默认情况下的圆点 . 是 匹配除换行符 \n 之外的任何字符,加上 s 之后, . 中包含换行符 \n;
  • m m 修饰符可以使 ^ 和 $ 匹配一段文本中每行的开始和结束位置;相比g 只匹配第一行,添加 m 之后实现多行。

方法

  • test() 返回一个布尔值,如果要检测是字符串 (test参数)中含有某个子串
    (正则定义),返回 true;
const reg = /google/i;
console.log(reg.test("gOogle111")); // true
  • exec() 返回的类数组对象中的index表示匹配的子串在字符串中的位置
const reg = /day/ig;
console.log( reg.exec("good good study, Day Day up"));

在这里插入图片描述
字符串方法replace()、match()、search()、split(),也适用于正则表达式;
match 方法

const pattern = /good/ig;  
const str = 'Good good GOoD study!,day day up!';
const arr = str.match(pattern);  //将匹配到的结果都放入数组当中,并返回
console.log(arr);  // ['Good', 'good', 'GOoD']

search方法

// 用于查找符合正则的字符串的位置,只返回第一个匹配的位置
		const pattern = /good/ig;
		const str = 'aGood good good study!,day day up!';
		console.log(str.search(pattern)); //  1

元字符(常见)

  • \ 元字符,表示转义,就是将特殊字符变成普通字符看待
  • | 元字符, 代表或者的意思 匹配其中一种字符串
  • . 元字符,代表除了换行之外的所有单个字符
var reg = /g..gle/ig;
var str ="googaggleg-ggle";
console.log(reg.test(str)); // true
console.log(str.search(reg)); // 3
console.log(str.match(reg)) //  ['gaggle', 'g-ggle']
  • * 元字符,出现任意次(0-n次) 重复*前的单个字符的多次匹配
var reg = /aa*gle/i; //
var str = "bbaaaaaaaglecc";
console.log(reg.test(str)); // true
console.log(str.match(reg)); // ["aaaaaaagle"]
  • + 元字符, 表示至少1次
var reg = /ga+gle/ig;
var str = "gaaaagle";
console.log(reg.test(str)); // true
console.log(str.search(reg));  // 0
console.log(str.match(reg)); // ['gaaaagle']
  • ? 元字符 表示0-1次
var reg = /g?gle/ig; 
var str = "g?gle";
console.log(reg.test(str)); // true
console.log(str.search(reg)); // 2
console.log(str.match(reg)); // ['gle']

  • ^ 匹配输入字符串的开始位置
  • $ 匹配输入字符串的结束位置
var reg = /^c.+ab$/;  
var str = "caaaaaaa1cab";
console.log(reg.test(str)); //true
console.log(str.match(reg)) // ["caaaaaaa1cab"]
  • \w, 等价于[a-zA-Z0-9_] ,字母数字下划线
  • \W ,非字母数字下划线
  • \d, 代表数字 等价于[0-9]
  • \D ,匹配一个非数字字符
  • \s, 匹配任何空白字符,包括空格
  • \S ,匹配任何非空白字符。
  • {n,m} , 最少匹配 n 次且最多匹配 m 次
  • [] 表示字符可以出现的范围
var reg = /g[0-9a-zA-Z_]+gle/g; 
var str = "agglegle";
console.log(reg.test(str)); // true
console.log(str.match(reg)) // ['gglegle']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值