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"]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章