RegExp 内置的构造函数,用于创建正则表达式。
<script>// 构造函数创建正则let reg = new RegExp('\\d', 'i');let reg = new RegExp(/\d/, 'i')// 字面量方式创建正则// let reg = /(\d)/i;reg.exec('123');</script>
// 匹配连续的4个数字// let reg = /\d\d\d\d/g// let reg = /\d{4}/g// let reg = /[0-9]{4}/g// 匹配连续的4个数字,要求每组数字 第1个数字和第2个数字相同;第3个数字和第4个数字相同// let str = '0011 2233 4545 6776 8998'// let reg = /(\d)\1(\d)\2/g// (\d) 使用小括号,表示 捕获 \d 匹配的那个值// \1 表示匹配的值,必须和第1个小括号匹配的值相同// \2 表示匹配的值,必须和第2个小括号匹配的值相同// console.log(str.match(reg))// 匹配连续的4个数字,要求14位相同、23位相同// let reg = /(\d)(\d)\2\1/g// console.log(str.match(reg))// 匹配连续的4个数字,要求13位相同、24位相同// let reg = /(\d)(\d)\1\2/g// console.log(str.match(reg))let str = 'ES6 and H5'// ES666 and H555let result = str.replace(/(\d)/g, '$1$1$1')console.log(result)
总结:
- 推荐使用字面量定义正则表达式,而不是
RegExp构造函数 RegExp静态属性 $1、$2、$3、… 获取正则分组单元
补充:当使用构造函数创建正则时有两种写法:
<script>// 使用 // 定义正则let reg = new RegExp(/\d/);// 或者使用 '' 定义正则// 如果使用引号定义正则时,\d、\s、\w需要多添加一个 \let reg1 = new RegExp('\\d');</script>
