JavaScript正则常用方法

1. test()

regexp.test(str)

作用: 检测一个字符串是否匹配某个正则。满足返回true,否则返回false。

var regexp = /^1[3-9]\d{9}$/; // 手机号正则
console.log( regexp.test('13588888888') ); // true
console.log( regexp.test('12588888888') ); // false 第2位不满足

正则方法test会受到正则对象全局g的影响 ,会导致正则对象lastIndex属性值,lastIndex是下次开始往后匹配的起始位置,未加全局g,则lastIndex属性值一直从0开始往后匹配。

var regexp = /^1[3-9]\d{9}$/g;
console.log( regexp.test('13588888888') ); // true
console.log(regexp.lastIndex); // 11

//regexp.lastIndex = 0; 重置下次开始匹配的位置为0,下面的test结果就会为true
console.log( regexp.test('13588888888') ); // false
console.log(regexp.lastIndex); // 0

console.log( regexp.test('13588888888') ); // true
console.log(regexp.lastIndex); // 11

一般对于结果满足或不满足的,正则对象不要加全局g即可。

2. exec()

regexp.exec(str)

作用: 返回正则匹配的结果,以一个数组返回 。此数组第一个元素(下标0)是正则相匹配的字符串,后面的元素依次是括号中捕获组的内容。未匹配到则返回null

此和方法和test一样,都会受到正则全局标识g的影响。

未加g测试:

var regexp = /(\d{3})\d{4}(\d{4})/; //未加g
regexp.exec('13588888888') ; // ["13588888888", "135", "8888", index: 0, input: "13588888888"]
regexp.lastIndex; // 0
regexp.exec('13588888888') ; // ["13588888888", "135", "8888", index: 0, input: "13588888888"]
regexp.lastIndex; // 0
regexp.exec('13588888888') ; // ["13588888888", "135", "8888", index: 0, input: "13588888888"]

加g测试:

var regexp = /(\d{3})\d{4}(\d{4})/g; //`加g
regexp.exec('13588888888'); // ["13588888888", "135", "8888", index: 0, input: "13588888888"]
regexp.lastIndex; // 11
regexp.exec('13588888888'); // null
regexp.lastIndex; // 0
regexp.exec('13588888888'); // ["13588888888", "135", "8888", index: 0, input: "13588888888"]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

及时当勉励岁月不待人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值