js中的正则介绍

正则基础

  • 正则用于处理字符串
  • 正则对象.test(字符串);这是正则匹配。用于检查字符串是否符合正则,符合返回true,不符合返回false
  • 正则对象.exec(字符串)这是正则捕获。
  • 返回结果是数组,如果捕获不到返回null
  • 第一项:代表捕获到的内容
  • 第二项:index表示捕获到的内容在原字符串中的索引
  • 第三项:input表示要捕获的整个字符串
  • 第四项:groups表示分组
  • 正则捕获具有懒惰性,解决方案是在正则表达式后面加上修饰符g。正则的实例都具有一个lastIndex属性,用于记录开始正则捕获时开始的字符串的索引
var reg = /\d+/;
console.log(reg.exec("zhufeng12peixun34"));//["12",index:7,input:"zhufeng12peixun34",groups:undefined]
console.log(reg.exec("zhufeng12peixun34"));//["12",index:7,input:"zhufeng12peixun34",groups:undefined]
//上面这个例子进行两次正则捕获都不能捕获到字符串中的34这组数字
var reg = /\d+/g;
console.log(reg.lastIndex);//0
console.log(reg.exec("zhufeng12peixun34"));//["12",index:7,input:"zhufeng12peixun34",groups:undefined]
console.log(reg.lastIndex);//9
console.log(reg.exec("zhufeng12peixun34"));//["34",index:9,input:"zhufeng12peixun34",groups:undefined]
console.log(reg.lastIndex);//9
console.log(reg.exec("zhufeng12peixun34"));//["34",index:15,input:"zhufeng12peixun34",groups:undefined]
console.log(reg.lastIndex);//17
console.log(reg.exec("zhufeng12peixun34"));//null
console.log(reg.lastIndex);//0。在捕获到的结果是null时,reg.lastIndex会重新设置为0,开始重新捕获
console.log(reg.exec("zhufeng12peixun34"));//["12",index:7,input:"zhufeng12peixun34",groups:undefined]
  • 正则捕获具有贪婪性,通过将?放在量词的后面取消捕获的贪婪性
var reg = /^\d+?$/;//表示存在一个或多个数字
console.log(reg.test("1"));//true
console.log(reg.test("011"));//true
var reg = /\d+?/g;
console.log(reg.exec("zhufeng20peixun19"));//["2", index: 7, input: "zhufeng20peixun19", groups: undefined]
console.log(reg.exec("zhufeng20peixun19"));//["0", index: 8, input: "zhufeng20peixun19", groups: undefined]
console.log(reg.exec("zhufeng20peixun19"));//["1", index: 15, input: "zhufeng20peixun19", groups: undefined]
console.log(reg.exec("zhufeng20peixun19"));//["9", index: 16, input: "zhufeng20peixun19", groups: undefined]
var reg = /\d*?/;
console.log(reg.test("abc"));//true
console.log(reg.test("123"));//true
console.log(reg.test("abc123"));//true
console.log(reg.lastIndex);//0
console.log(reg.exec("abc"));//["", index: 0, input: "abc", groups: undefined]
console.log(reg.lastIndex);//0
var reg = /\d*?/g;//应用场景不多,没有什么意义
console.log(reg.lastIndex);//0
console.log(reg.exec("a123b"))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值