一、正则表达式的创建
// 创建正则表达式
// 1.构造函数模式
var reg1 = new RegExp('b'); //匹配一个字符串中是否含有字符b
// 2、字面量
var reg1_1 = /b/;
var str = 'hello xiaobai';
//测试是否有效
// g global 全局
// i ignore case 不区分大小写
// m multiline 多行
if (reg1.test(str)) {
console.log('yes');
} else {
console.log('no');
}
二、修饰符
// 修饰符
var reg2 = new RegExp('abc', 'ig'); //全局且不区分大小写
var reg2=/b/igm;
// 创建正则表达式
// 1.构造函数模式
var reg1 = new RegExp('b'); //匹配一个字符串中是否含有字符b
// 2、字面量
var reg1_1 = /b/;
var str = 'hello xiaobai';
//测试是否有效
// g global 全局
// i ignore case 不区分大小写
// m multiline 多行
if (reg1.test(str)) {
console.log('yes');
} else {
console.log('no');
}
// --------------------------------------------------
// 修饰符
var reg2 = new RegExp('abc', 'ig'); //全局且不区分大小写
var str2 = 'helloABCxiABCoaai';
var str3 = `hello abc
hello abc`; //反引号
// 1.方法一
console.log(reg2.test(str));
console.log(reg2.test(str));
console.log(reg2.test(str));
console.log(reg2.test(str3)); //不区分大小写,全局第一个,存在->true
console.log(reg2.test(str3)); //不区分大小写,全局第二个,第二行->true
console.log(reg2.test(str3)); //不区分大小写,全局第三个,第三行->false 不存在了
// --------------------------------------------------------
// api
console.log(reg2.global); //正则表达式是否带有修饰符g
console.log(reg2.ignoreCase); //正则表达式是否带有修饰符i
console.log(reg2.flags); //返回所有的修饰符
// 方法
// 2.方法二
console.log(reg2.exec(str3)) //[ 'abc', index: 6, input: 'hello abc\nhello abc', groups: undefined ]
console.log(reg2.exec(str3)) //[ 'abc', index: 16, input: 'hello abc\nhello abc', groups: undefined ]
// 输出含有匹配结果的数组['abc','abc']
var arr5 = [];
var res = true; //代表还有结果
while (res != null) {
res = reg2.exec(str2);
if (res != null)
arr5.push(res[0]);
}
console.log(arr5);