国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

JS中正則表達(dá)式要注意lastIndex屬性

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:33:19
文檔

JS中正則表達(dá)式要注意lastIndex屬性

JS中正則表達(dá)式要注意lastIndex屬性: 說明 這篇文章,主要和大家聊聊JavaScript中RegExp對(duì)象的屬性。 解釋 每個(gè)RegExp對(duì)象都包含5個(gè)屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個(gè)只讀的字符串,包含正則表達(dá)式的文本。 var reg = /JavaScrip
推薦度:
導(dǎo)讀JS中正則表達(dá)式要注意lastIndex屬性: 說明 這篇文章,主要和大家聊聊JavaScript中RegExp對(duì)象的屬性。 解釋 每個(gè)RegExp對(duì)象都包含5個(gè)屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個(gè)只讀的字符串,包含正則表達(dá)式的文本。 var reg = /JavaScrip

 說明

這篇文章,主要和大家聊聊JavaScript中RegExp對(duì)象的屬性。

解釋

每個(gè)RegExp對(duì)象都包含5個(gè)屬性,source、global、ignoreCase、multiline、lastIndex。

source:是一個(gè)只讀的字符串,包含正則表達(dá)式的文本。

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

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

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

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

ignoreCase:是一個(gè)只讀的布爾值,看這個(gè)正則表達(dá)式是否帶有修飾符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:是一個(gè)只讀的布爾值,看這個(gè)正則表達(dá)式是否帶有修飾符m。

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

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

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

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

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

這里寫圖片描述

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

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

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

看看下面這段有趣的代碼

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

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

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

var str="JavaScript";
var reg=/JavaScript/g;
console.log(reg.test(str)); //打印 true
console.log(reg.lastIndex);
//打印10,因?yàn)槠ヅ涞搅薐avaScript,所以設(shè)置lastIndex為匹配結(jié)果緊挨著的字符位置
console.log(reg.test(str));
//打印 false,因?yàn)閺膌astIndex位置檢索字符串,已經(jīng)沒有匹配結(jié)果了
console.log(reg.lastIndex);
//打印0,因?yàn)闆]有匹配到結(jié)果,所以將lastIndex重置為0

這里注意一點(diǎn),如果第一次調(diào)用test( )匹配結(jié)束后,我們手動(dòng)將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

在強(qiáng)調(diào)一次,上面說的關(guān)于lastIndex的問題,都是因?yàn)檎齽t表達(dá)式對(duì)象中帶有修飾符g,如果不帶有修飾符g,就不用擔(dān)心這些問題了。

總結(jié)

這次主要是說說,JavaScript中正則表達(dá)式對(duì)象的5個(gè)屬性,而最需要注意的就是lastIndex屬性了。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS中正則表達(dá)式要注意lastIndex屬性

JS中正則表達(dá)式要注意lastIndex屬性: 說明 這篇文章,主要和大家聊聊JavaScript中RegExp對(duì)象的屬性。 解釋 每個(gè)RegExp對(duì)象都包含5個(gè)屬性,source、global、ignoreCase、multiline、lastIndex。 source:是一個(gè)只讀的字符串,包含正則表達(dá)式的文本。 var reg = /JavaScrip
推薦度:
標(biāo)簽: 屬性 正則表達(dá)式 js中
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 在线观看免费国产 | 中文国产成人精品少久久 | 羞羞网站在线观看 | 午夜一区二区三区 | 午夜精品视频在线观看 | 国产在线不卡视频 | 久久久毛片 | 国产大片91精品免费观看不卡 | 韩国精品一区二区久久 | 久久精品2 | 亚洲国语在线视频手机在线 | 国内一级一级毛片a免费 | 国产一级成人毛片 | 国产免费一区二区三区香蕉精 | 香蕉乱码成人久久天堂爱免费 | 国产精品美女久久久久网站 | 国产手机视频在线观看 | 亚洲青草视频 | 不卡中文字幕在线观看 | 国产视频最新 | 亚洲精品国产综合一线久久 | 日韩欧美在线视频 | 日韩亚洲欧洲在线com91tv | 香蕉久久一区二区不卡无毒影院 | 欧美日韩一区二区三区久久 | 国产在线视频资源 | 久久精品综合国产二区 | 青青国产在线 | 亚洲欧美一区二区三区九九九 | 日韩精品一区二区三区在线观看l | xxx色| 欧美日韩国产在线 | 欧美一区二区三区网站 | 国产全黄a一级毛片视频 | 欧美网站在线看 | 欧美 韩国 精品 另类 综合 | 91日韩| 欧美专区日韩专区 | 欧美一区二区三区四区视频 | 性久久久久久久久 | 高h肉肉视频在线播放观看 福利视频一区二区三区 |