每天一篇javascript學(xué)習(xí)小結(jié)(RegExp對象)
1、正則表達(dá)式test方法
var text = "cat, bat, sat, fat";
var pattern = /.at/;
if (pattern.test(text)){
alert("The pattern was matched.");
}
2、正則的toString()方法
var pattern = new RegExp("\\[bc\\]at", "gi");
alert(pattern.toString()); // /\[bc\]at/gi
alert(pattern.toLocaleString()); // /\[bc\]at/gi
3、RegExp Constructor(構(gòu)造函數(shù)) Properties(屬性)
var text = "this has been a short summer";
var pattern = /(.)hort/g;
/*
* Note: Opera doesn't support input, lastMatch, lastParen, or multiline.
* Internet Explorer doesn't support multiline.
*/
if (pattern.test(text)){
alert(RegExp.input); //this has been a short summer
alert(RegExp.leftContext); //this has been a
alert(RegExp.rightContext); // summer
alert(RegExp.lastMatch); //short
alert(RegExp.lastParen); //s
alert(RegExp.multiline); //false
}
input 保存被搜索的字符串
index 保存匹配的首字符的位置
lastIndex 保存匹配的字符串下一個字符的位置
lastMatch 保存匹配到的字符串
lastParen 保存最后一個被匹配的字符串(最后一個括號內(nèi)的內(nèi)容)
leftContext 保存匹配字符串左邊的內(nèi)容
rightContext 保存匹配字符串右邊的內(nèi)容
$1~$9 保存最開始的9個子匹配(括號中的內(nèi)容)
var text = "this has been a short summer";
var pattern = /(.)hort/g;
/*
* Note: Opera doesn't support short property names.
* Internet Explorer doesn't support multiline.
*/
if (pattern.test(text)){
alert(RegExp.$_); //this has been a short summer
alert(RegExp["$`"]); //this has been a
alert(RegExp["$'"]); // summer
alert(RegExp["$&"]); //short
alert(RegExp["$+"]); //s
alert(RegExp["$*"]); //false
}
* 分為長屬性名和短屬性名
* input $_ 最近一次要匹配的字符串
* lastMatch $& 最近一次的匹配項
* lastParen $+ 最近一次匹配的捕獲組
* leftContext $` input字符串中l(wèi)astMatch之前的文本
* multiline $* 布爾值,表示是否所有表達(dá)式都使用多行模式。
* rightContext $' input字符串中l(wèi)astMatch之后的文本
4、正則$1.....$9
var text = "this has been a short summer";
var pattern = /(..)or(.)/g;
if (pattern.test(text)){
alert(RegExp.$1); //sh
alert(RegExp.$2); //t
}
每當(dāng)產(chǎn)生一個帶括號的成功匹配時,$1...$9 屬性的值就被修改。
可以在一個正則表達(dá)式模式中指定任意多個帶括號的子匹配,但只能存儲最新的九個。
5、RegExp exec()
var text = "mom and dad and baby"; var pattern = /mom( and dad( and baby)?)?/gi; var matches = pattern.exec(text); alert(matches.index); //0 第一個被匹配到的位置 alert(matches.input); //"mom and dad and baby" 匹配的原始字符串 alert(matches[0]); //"mom and dad and baby" 匹配的第一個值 alert(matches[1]); //" and dad and baby" 匹配的第二個值 alert(matches[2]); //" and baby" 匹配的第三個值
var text = "cat, bat, sat, fat"; var pattern1 = /.at/; var matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern1.lastIndex);//0 matches = pattern1.exec(text); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern1.lastIndex);//0 var pattern2 = /.at/g; var matches = pattern2.exec(text); alert(matches.index); //0 alert(matches[0]); //"cat" alert(pattern2.lastIndex);//0 matches = pattern2.exec(text); alert(matches.index); //5 alert(matches[0]); //"bat" alert(pattern2.lastIndex);//0
6、RegExp實例屬性
var pattern1 = /\[bc\]at/i;
alert(pattern1.global); //false //是否設(shè)置全局查找
alert(pattern1.ignoreCase); //true 是否忽略大小寫
alert(pattern1.multiline); //false 是否設(shè)置多行查找
alert(pattern1.lastIndex); //0 一個整數(shù),標(biāo)示開始下一次匹配的字符位置。
alert(pattern1.source); //"\[bc\]at" 正則表達(dá)式的源文本。
var pattern2 = new RegExp("\\[bc\\]at", "i");
alert(pattern2.global); //false
alert(pattern2.ignoreCase); //true
alert(pattern2.multiline); //false
alert(pattern2.lastIndex); //0
alert(pattern2.source); //"\[bc\]at"
以上就是今天的javascript學(xué)習(xí)小結(jié),之后每天還會繼續(xù)更新,希望大家繼續(xù)關(guān)注。
- javascript RegExp對象(正則表達(dá)式)
- JavaScript 核心參考教程 RegExp對象
- js正則表達(dá)式之RegExp對象之compile方法 編譯正則表達(dá)式
- js正則表達(dá)式之RegExp對象屬性lastIndex,lastMatch,lastParen,lastContext,rightContext屬性講解
- js正則表達(dá)式之input屬性($_)RegExp對象屬性介紹
- js正則表達(dá)式講解之index屬性(RegExp對象)
- JavaScript-RegExp對象只能使用一次問題解決方法
- JavaScript學(xué)習(xí)小結(jié)(一)——JavaScript入門基礎(chǔ)
- 每天一篇javascript學(xué)習(xí)小結(jié)(基礎(chǔ)知識)
- 每天一篇javascript學(xué)習(xí)小結(jié)(Array數(shù)組)
- 每天一篇javascript學(xué)習(xí)小結(jié)(Boolean對象)
- 每天一篇javascript學(xué)習(xí)小結(jié)(Date對象)
- 每天一篇javascript學(xué)習(xí)小結(jié)(Function對象)
相關(guān)文章
JavaScript ES6中類與模塊化管理超詳細(xì)講解
JavaScript中的模塊化是指將每個js文件會被認(rèn)為單獨一個的模塊。模塊之間是互相不可見的。如果一個模塊需要使用另一個模塊,那么需要通過指定語法來引入要使用的模塊,而且只能使用引入模塊所暴露的內(nèi)容2023-01-01
微信小程序api列表匯總包括網(wǎng)絡(luò)API,媒體API,文件API ,微信小程序支付流程,位置API,界面API等
這篇文章主要介紹了微信小程序api列表匯總包括網(wǎng)絡(luò)API,媒體API,文件API ,數(shù)據(jù)API,位置API,界面API,微信小程序支付流程,微信小程序登錄流程等,需要的朋友可以參考下2022-12-12
使用JavaScript腳本無法直接改變Asp.net中Checkbox控件的Enable屬性的解決方法
今天工作中遇到個小問題,情況如下,當(dāng)我在后臺頁面中設(shè)置Checkbox的Enable的值為false時,我在前端頁面中使用腳本(chk.disabled = false),無法改變disabled的值為false,下面看看小編是怎么解決此問題的,需要的朋友一起了解了解吧2015-09-09
微信小程序注冊60s倒計時功能 使用JS實現(xiàn)注冊60s倒計時功能
這篇文章主要介紹了微信小程序注冊60s倒計時功能,以及使用JS實現(xiàn)注冊60s倒計時功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
Bootstrap的popover(彈出框)在append后彈不出(失效)
這篇文章主要介紹了Bootstrap的popover(彈出框)在append后彈不出,失效的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02

