昨天發了一篇在JS中可以使用的正規表達式大全。然后晚上就有常來博客訪問的小伙伴來問,如何在JS中使用這些的正規則表達式?然后自己就整理了一些關于JS中使用正則表達式的方法,給大家做個參考吧。

JS中支持正則表達式的 string 對象的方法

国产视频appjs中的 search,match,replace 以及 split 對象方法,都可以使用正則表達式,具體的用法,如下:

1、js search 方法使用正則表達式

search:查找與正則表達式相匹配的值,并返回其位置。

js代碼:

<script>
var reg = /\d/; //正則表達式,匹配數字
var str = 'abcdef123sdf';
console.log(str.search(reg));
</script>

国产视频app返回值:6 (從0開始的)

注意:

(1)、search() 方法不執行全局匹配,它將忽略標志 g。

(2)、search() 是從字符串的開始進行檢索,并返回第一個被匹配對像檢索的位置

国产视频app(3)、如果沒有檢測到對象,則會返回 -1

2、js match 對象方法,使用正則表達式

国产视频appmatch:查找一個或多個與正規表達式匹配的值

例1:match 全局匹配,返回一個帶有所有匹配對像的數組

js代碼:

<script>
var reg = /\d/g; //正則表達式,匹配數字 加 g 表示全局匹配所有的數字
var str = 'abcdef123sdf';
console.log(str.match(reg));
</script>

国产视频app返回數組: ["1", "2", "3"]

例2:match 對象單個匹配,不使用修飾符 g

js代碼:

<script>
var reg = /\d/; //正則表達式,這里只匹配一次,不是會局部
var str = 'abcdef123sdf';
console.log(str.match(reg));
</script>

国产视频app返回結果:["1", index: 6, input: "abcdef123sdf", groups: undefined]

注意:

国产视频app(1)、match() 可以在字符串中,匹配一次或多次符合規則的文本,當然這主要看要匹配的正則表達式有沒有標志 g

(2)、如果正則表達式沒有標志 g,那么 match() 方法就只會在被檢索的字符串中執行一次匹配。如果沒有匹配到則返回null,否則返回一個存放了與它找到的匹配文本有關的信息的數組。該數組的第 0 個元素存放的是匹配文本,而其余的元素存放的是與正則表達式的子表達式匹配的文本,除了這些常規的數組元素之外,返回的數組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字符在被匹配字符串中的位置,input 屬性聲明的是對被匹配字符串的引用。

(3)、如果匹規則有標志 g,則 match() 方法將執行全局檢索,找到被匹配文本中的所有匹配的子字符串,并組成數組進行返回(數組中只有匹配到的子字符串,沒有其它屬性),如未匹配到,則返回 null.

3、js replace 對象方法,使用正則表達式

国产视频appreplace:替換與正規表達式相匹配的值

js代碼:

<script>
// var reg = /\d/g; // 添加 g 表示,全局替換
var reg = /\d/; // 沒有 g,只替換匹配到的第一個
var str = 'abcdef123sdf';
console.log(str.replace(reg,'A'));
</script>

返回值:abcdefA23sdf

4、split對象方法 使用正則表達式,將字符串分割成數組

split:將一串字符串分割為一個數組

js代碼:

js split 方法使用正則表達式,切割字符串

<script>
var reg = /(?:[a-zA-Z]+)/;
var str = '123a456b789c1A2B3C5';
console.log(str.split(reg));
</script>

国产视频app返回值: ["123", "456", "789", "1", "2", "3", "5"]

js RegExp 對象對像正則表達式的操作

国产视频appRegExp:對象是帶有預定義屬性和方法的正則表達式對象。 

国产视频app關于 RegExp 表達式,我們這里不做過多的介紹,只簡單的說一下它的 exec 方法與 test 方法!

1、exec 方法:

exec:檢索字符串內是否存在某值,如有返回一個數組,如沒有返回 null

JS代碼:

<script>
test = new RegExp('niao', 'g');
console.log(test.exec('feiniaomy.com')); 
</script>

返回值:["niao", index: 3, input: "feiniaomy.com", groups: undefined]

2、test() 方法

国产视频apptest():檢測一個字符串是否匹配某個模式.

js代碼:

<script>
test = new RegExp(/^(?:(?:\+|00)86)?1[3-9]\d{9}$/, 'g');  //驗證手機號的正則表達式
console.log(test.test('13512347895')); 
</script>

返架值:true