JavaScript中RegExp對象屬性的示例分析

這篇文章主要介紹了JavaScript中RegExp對象屬性的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

多端合一響應(yīng)式網(wǎng)站開發(fā):PC+平板+手機,同一后臺修改數(shù)據(jù)多端同步更新提交您的需求,獲取網(wǎng)站建設(shè)與營銷策劃方案報價,我們會在1小時內(nèi)與您聯(lián)系!

解釋

每個RegExp對象都包含5個屬性,source、global、ignoreCase、multiline、lastIndex。

source:是一個只讀的字符串,包含正則表達式的文本。

var reg = /JavaScript/;
reg.source; //返回 JavaScript

global:是一個只讀的布爾值,看這個正則表達式是否帶有修飾符g。

修飾符g,是全局匹配的意思,檢索字符串中所有的匹配。

var str = "JavaScript";
str.match(/JavaScript/); //只能匹配一個JavaScript 
var str = "JavaScript JavaScript";
str.match(/JavaScript/g); //能匹配兩個JavaScript 
var reg = /JavaScript/;
reg.global; //返回 false
var reg = /JavaScript/g;
reg.global; //返回 true

ignoreCase:是一個只讀的布爾值,看這個正則表達式是否帶有修飾符i。

修飾符i,說明模式匹配是不區(qū)分大小寫的。

var reg = /JavaScript/;
reg.ignoreCase; //返回 false
var reg = /JavaScript/i;
reg.ignoreCase; //返回 true
var reg = /JavaScript/;
reg.test("javascript"); //返回 false
var reg = /JavaScript/i;
reg.test("javascript"); //返回 true

multiline:是一個只讀的布爾值,看這個正則表達式是否帶有修飾符m。

修飾符m,用以在多行模式中執(zhí)行匹配,需要配合^ 和 $</code> 使用,使用<code>^</code> 和 <code>$ 除了匹配整個字符串的開始和結(jié)尾之外,還能匹配每行的開始和結(jié)尾。

var str="java\nJavaScript";
str.match(/^JavaScript/); //返回null
var str="java\nJavaScript";
str.match(/^JavaScript/m); //匹配到一個JavaScript
var reg=/JavaScript/;
reg.multiline; //返回false
var reg=/JavaScript/m;
reg.multiline; //返回true

lastIndex:是一個可讀/寫的整數(shù),如果匹配模式中帶有g(shù)修飾符,這個屬性存儲在整個字符串中下一次檢索的開始位置,這個屬性會被exec( ) 和 test( ) 方法用到。

exec( )方法是在一個字符串中執(zhí)行匹配檢索,如果它沒有找到任何匹配,它就返回null,但如果它找到了一個匹配,它就返回一個數(shù)組。

當調(diào)用exec( )的正則表達式對象具有修飾符g時,它將把當前正則表達式對象的lastIndex屬性設(shè)置為緊挨著匹配子串的字符位置,當同一個正則表達式第二次調(diào)用exec( ),它會將從lastIndex屬性所指示的字符串處開始檢索,如果exec( )沒有發(fā)現(xiàn)任何匹配結(jié)果,它會將lastIndex重置為0。

JavaScript中RegExp對象屬性的示例分析

test( )方法,它的參數(shù)是一個字符串,用test( )對某個字符串進行檢測,如果包含正則表達式的一個匹配結(jié)果,則返回true,否則返回false。

var str="java";
var reg=/JavaScript/;
reg.test(str); //返回false
var str="JavaScript";
var reg=/JavaScript/;
reg.test(str); //返回true

當調(diào)用test( )的正則表達式對象具有修飾符g時,它的行為和exec( )相同,因為它從lastIndex指定的位置處開始檢索某個字符串,如果它找到了一個匹配結(jié)果,那么它就立即設(shè)置lastIndex為緊挨著匹配子串的字符位置

看看下面這段有趣的代碼

var str="JavaScript";
var reg=/JavaScript/g;
console.log(reg.test(str)); //打印 true
console.log(reg.test(str)); //打印 false

為什么同樣的字符串,同樣的正則表達式,卻打印的不一樣,如果你已經(jīng)理解了 lastIndex屬性,那你一定明白為什么。

我們來看看到底發(fā)什么了什么

var str="JavaScript";
var reg=/JavaScript/g;
console.log(reg.test(str)); //打印 true
console.log(reg.lastIndex);
//打印10,因為匹配到了JavaScript,所以設(shè)置lastIndex為匹配結(jié)果緊挨著的字符位置
console.log(reg.test(str));
//打印 false,因為從lastIndex位置檢索字符串,已經(jīng)沒有匹配結(jié)果了
console.log(reg.lastIndex);
//打印0,因為沒有匹配到結(jié)果,所以將lastIndex重置為0

這里注意一點,如果第一次調(diào)用test( )匹配結(jié)束后,我們手動將lastIndex重置為0,那么第二次調(diào)用test( ),同樣可以打印true

var str="java JavaScript java";
var reg=/JavaScript/g;
console.log(reg.test(str)); //打印 true
reg.lastIndex=0;
console.log(reg.test(str)); //打印 true

在強調(diào)一次,上面說的關(guān)于lastIndex的問題,都是因為正則表達式對象中帶有修飾符g,如果不帶有修飾符g,就不用擔心這些問題了。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“JavaScript中RegExp對象屬性的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

當前名稱:JavaScript中RegExp對象屬性的示例分析
文章位置:http://muchs.cn/article0/jpidoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、響應(yīng)式網(wǎng)站關(guān)鍵詞優(yōu)化、定制網(wǎng)站、手機網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營