您好,登錄后才能下訂單哦!
這篇文章主要講解了“JavaScript中RegExp對象的方法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JavaScript中RegExp對象的方法有哪些”吧!
語法:
RegExpObject.test(string)
參數說明:
參數描述
string必需參數。要檢測的字符串。
例如,檢測一個字符串是否已“abc”開頭(忽略大小寫):
/^abc/i.test("abcdef");
檢測一個字符串是否全部為數字:
/^\d{1,}$/.test("123456789");
檢測一個字符串是否是字母和數字的組合:
var pattern=new RegExp("^[0-9a-zA-Z]{1,}$");
alert(pattern.test("123abc"));//顯示true
exec()方法
exec()方法用來檢索字符串中與正則表達式匹配的值。
exec()方法返回一個數組,其中存放匹配的結果。如果未找到匹配的值,則返回null。
語法:
RegExpObject.exec(string)
參數說明:
參數描述
string必需參數。要檢索的字符串。
與test()方法相比,exec()方法更加強大,功能也更加復雜。
當exec()找到了匹配的文本時,會返回一個結果數組。否則,返回null。此數組的第0個元素是與正則表達式相匹配的文本,第1個元素是與RegExpObject的第1個子表達式相匹配的文本(如果有的話),第2個元素是與RegExpObject的第2個子表達式相匹配的文本(如果有的話),以此類推。
除了數組元素和length屬性之外,exec()方法還返回兩個屬性。index屬性聲明的是匹配文本的第一個字符的位置。input屬性則存放的是被檢索的字符串string。
但是,當RegExpObject是一個全局正則表達式(帶有g修飾符)時,exec()的行為就稍微復雜一些,它會在RegExpObject的lastIndex屬性指定的字符處開始檢索字符串string。當exec()找到了與表達式相匹配的文本時,在匹配后,它將把RegExpObject的lastIndex屬性設置為匹配文本的最后一個字符的下一個位置。
也就是說,可以通過反復調用exec()方法來遍歷字符串中的所有匹配文本。當exec()再也找不到匹配的文本時,它將返回null,并把lastIndex屬性重置為0。
JavaScript RegExp對象的方法有哪些
請看下面的代碼:
var str="Itxueyuan's domain is www.itxueyuan.org.Welcome to itxueyuan!";
var pattern=new RegExp("itxueyuan","ig");
var i=1;
var result;
while(result=pattern.exec(str)){
alert(
"第"+i+"次匹配的字符串:"+result[0]+"\n"+
"所匹配的字符的起始位置:"+result.index+"\n"+
"第"+(++i)+"次匹配的的起始位置:"+pattern.lastIndex
);
}
compile()方法
compile()方法可以在腳本執行過程中編譯正則表達式,也可以改變已有表達式。
語法:
RegExpObject.compile(regexp,modifier)
參數說明:
參數描述
regexp正則表達式。
modifier規定匹配的類型。"g"用于全局匹配,"i"用于區分大小寫,"gi"用于全局區分大小寫的匹配。
例如,在字符串中全局搜索"man",并用"person"替換。然后通過compile()方法,改變正則表達式,用"person"替換"man"或"woman",:
var str="Every man in the world!Every woman on earth!";
patt=/man/g;
str2=str.replace(patt,"person");
document.write(str2+"
");
patt=/(wo)?man/g;
patt.compile(patt);
str2=str.replace(patt,"person");
document.write(str2);
執行結果:
Every person in the world!Every woperson on earth!
Every person in the world!Every person on earth!
感謝各位的閱讀,以上就是“JavaScript中RegExp對象的方法有哪些”的內容了,經過本文的學習后,相信大家對JavaScript中RegExp對象的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。