怎么定义正则表达式
- 字面量定义,就是用两个"/"把表达式包裹起来。字面量定义的正则表达式可以赋值给变量,也可以在需要用到正则表达式的地方直接使用。
// 赋值给变量
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对"\"进行转义
标签:怎么,abc,定义,正则表达式,reg2,reg1,var,RegExp
From: https://www.cnblogs.com/biandang/p/16920228.html