正则基础
- 正则用于处理字符串
正则对象.test(字符串);
这是正则匹配。用于检查字符串是否符合正则,符合返回true,不符合返回false
正则对象.exec(字符串)
这是正则捕获。
- 第一项:代表捕获到的内容
- 第二项:index表示捕获到的内容在原字符串中的索引
- 第三项:input表示要捕获的整个字符串
- 第四项:groups表示分组
- 正则捕获具有懒惰性,解决方案是在正则表达式后面加上修饰符
g
。正则的实例都具有一个lastIndex
属性,用于记录开始正则捕获时开始的字符串的索引
var reg = /\d+/;
console.log(reg.exec("zhufeng12peixun34"));
console.log(reg.exec("zhufeng12peixun34"));
var reg = /\d+/g;
console.log(reg.lastIndex);
console.log(reg.exec("zhufeng12peixun34"));
console.log(reg.lastIndex);
console.log(reg.exec("zhufeng12peixun34"));
console.log(reg.lastIndex);
console.log(reg.exec("zhufeng12peixun34"));
console.log(reg.lastIndex);
console.log(reg.exec("zhufeng12peixun34"));
console.log(reg.lastIndex);
console.log(reg.exec("zhufeng12peixun34"));
- 正则捕获具有贪婪性,通过将
?
放在量词的后面取消捕获的贪婪性
var reg = /^\d+?$/;
console.log(reg.test("1"));
console.log(reg.test("011"));
var reg = /\d+?/g;
console.log(reg.exec("zhufeng20peixun19"));
console.log(reg.exec("zhufeng20peixun19"));
console.log(reg.exec("zhufeng20peixun19"));
console.log(reg.exec("zhufeng20peixun19"));
var reg = /\d*?/;
console.log(reg.test("abc"));
console.log(reg.test("123"));
console.log(reg.test("abc123"));
console.log(reg.lastIndex);
console.log(reg.exec("abc"));
console.log(reg.lastIndex);
var reg = /\d*?/g;
console.log(reg.lastIndex);
console.log(reg.exec("a123b"))