功能說明:該方法可以編譯指定的正則表達(dá)式,編譯之后的正則表達(dá)式執(zhí)行速度將會提高,如果正則表達(dá)式多次被調(diào)用,那么調(diào)用compile方法可以有效的提高代碼的執(zhí)行速度,如果該正則表達(dá)式只能被使用一次,則不會有明顯的效果。
基本語法:objReg.compile(pattern[,flag])
objReg必選項,RegExp對象變量的名稱
pattern 必選項 正則表達(dá)式
flag 可選項 匹配選項
復(fù)制代碼 代碼如下:
<html>
<script language=”javascript” type=”text/javascript”>
//要匹配的字符串
var objStr=”我的手機(jī)號13522222222,他的手機(jī)號碼13233333333她的手機(jī)號碼13988888888″;
//設(shè)置正則表達(dá)式匹配以13開頭的11為手機(jī)號碼,全局匹配(這里是匹配移動手機(jī)號)
var reg=new RegExp(“13[4-9](//d){8}”,”g”);
//提示用戶發(fā)現(xiàn)移動號碼,然后打印出結(jié)果
document.write(“發(fā)現(xiàn)移動手機(jī)號碼”);
//調(diào)用函數(shù)打印匹配的結(jié)果
findPhoneNumbers(objStr.match(reg));
//重新編譯正則表達(dá)式
reg.compile(“13[0-3](//d){8}”,”g”);
document.write(“發(fā)現(xiàn)聯(lián)通手機(jī)號碼”);
findPhoneNumbers(objStr.match(reg));
//定義輸出返回結(jié)果函數(shù)
function findPhoneNumbers(arr){
//使用循環(huán)輸出數(shù)據(jù)
for(var i=0;i<arr.length;i++){
document.write(“<li>”+arr[i]+”<br>”);
}
}
</script>
</html>
<script language=”javascript” type=”text/javascript”>
//要匹配的字符串
var objStr=”我的手機(jī)號13522222222,他的手機(jī)號碼13233333333她的手機(jī)號碼13988888888″;
//設(shè)置正則表達(dá)式匹配以13開頭的11為手機(jī)號碼,全局匹配(這里是匹配移動手機(jī)號)
var reg=new RegExp(“13[4-9](//d){8}”,”g”);
//提示用戶發(fā)現(xiàn)移動號碼,然后打印出結(jié)果
document.write(“發(fā)現(xiàn)移動手機(jī)號碼”);
//調(diào)用函數(shù)打印匹配的結(jié)果
findPhoneNumbers(objStr.match(reg));
//重新編譯正則表達(dá)式
reg.compile(“13[0-3](//d){8}”,”g”);
document.write(“發(fā)現(xiàn)聯(lián)通手機(jī)號碼”);
findPhoneNumbers(objStr.match(reg));
//定義輸出返回結(jié)果函數(shù)
function findPhoneNumbers(arr){
//使用循環(huán)輸出數(shù)據(jù)
for(var i=0;i<arr.length;i++){
document.write(“<li>”+arr[i]+”<br>”);
}
}
</script>
</html>
使用compile方法還可以對指定的正則表達(dá)式進(jìn)行修改并且重新編譯,提高了正則表達(dá)式的適應(yīng)性!