怎么定义正则表达式

怎么定义正则表达式

  • 字面量定义,就是用两个"/"把表达式包裹起来。字面量定义的正则表达式可以赋值给变量,也可以在需要用到正则表达式的地方直接使用。
// 赋值给变量
var reg = /abc/;
// 直接使用
if(/abc/.test('123456abcdefg')) {}

var testText = '123456789abcdefg';
var replaceText = testText.replace(/abc/, '@@@***')
console.log(replaceText);	// 123456789@@@***defg

  • 使用正则表达式构造函数定义正则表达式。使用构造函数和使用字面量比起来会复杂一点,但是功能更加强大。
// 这里定义的两个正则表达式的值是一样的
var reg1 = /abc/;
var reg2 = new RegExp('abc');
// 使用构造函数可以直接使用字面量定义的正则表达式,也可以在在字面量正则表达式的基础上,选择性地修改他们的修饰符
var reg1 = /abc/;
var reg2 = new RegExp(reg1);	// reg2等同于reg1

var reg3 = /abc/g;
var reg4 = new RegExp(reg3, 'i');	// reg4的值为/abc/i,把reg3的g修饰符改成了i
// 使用构造函数可以使用js变量
var str = 'ab';
var reg5 = new RegExp(`${str}c`, 'g');	//结果为 /abc/g

  • 需要注意的是:使用RegExp定义正则表达式,如果遇到转义字符"",需要二次转义,因为反斜杠""也是字符串的转义字符。
var reg1 = /\d+/;
var reg2 = new RegExp('\\d+'); // reg1和reg2的值是一样的,reg2对"\"进行转义
posted @ 2022-11-23 21:42  便当  阅读(86)  评论(0)    收藏  举报