java正則表達式詳解
1、正則表達式簡介:
普通方式:var reg=/表達式/附加參數
附件參數:
g:代表可以進行全局匹配。
i:代表不區分大小寫匹配。
m:代表可以進行多行匹配。
上面三個參數,可以任意組合,代表複合含義,當然也可以不加參數。
舉例:
var reg=/a*b/;
var reg=/abc+f/g;
構造函數方式:var reg=new RegExp(“表達式”,”附加參數”);
舉例:
var reg=new RegExp(“a*b”);
var reg=new RegExp(“abc+f”,”g”);
兩者區別:
普通方式中的表達式必須是一個常量字符串,而構造函數中的表達式可以是常量字符串,也可以是一個js變量,例如根據用戶的輸入來作爲表達式參數等等:var reg=new RegExp(document.forms[0].exprfiled.value,”g”);
2、正則表達式的操作:
表達式對象(RegExp)方法:
①exec(str),返回str中與表達式相匹配的第一個字符串,而且以數組的形式表現,當然如果表達式中含有捕捉用的小括號,則返回的數組中也可能含有()中的匹配字符串,例如:
var regx=//d+/;
var rs=regx.exec(“3432ddf53”);
返回的rs值爲:{3432}
var regx2=new RegExp(“ab(/d+)c”);
var rs2=regx2.exec(“ab234c44”);
返回的rs值爲:{ab234c,234}
另外,如果有多個合適的匹配,則第一次執行exec返回一個第一個匹配,此時繼續執行exec,則依次返回第二個第三個匹配。例如:
var regx=/user/d/g;
var rs=regx.exec(“ddduser1dsfuser2dd”);
var rs1=regx.exec(“ddduser1dsfuser2dd”);
則rs的值爲{user1},rs的值爲{rs2},當然注意regx中的g參數是必須的,否則無論exec執行多少次,都返回第一個匹配。後面還有相關內容涉及到對此想象的解釋。
②test(str),判斷字符串str是否匹配表達式,返回一個布爾值。例如:
var regx=/user/d+/g;
var flag=regx.test(“user12dd”);
flag的值爲true。
String對象方法:
①match(expr),返回與expr相匹配的一個字符串數組,如果沒有加參數g,則返回第一個匹配,加入參數g則返回所有的匹配
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.match(regx);
rs的值爲:{user1,user3}
②search(expr),返回字符串中與expr相匹配的第一個匹配的index值。
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.search(regx);
rs的值爲:0
③replace(expr,str),將字符串中匹配expr的部分替換爲str。另外在replace方法中,str中可以含有一種變量符號$,格式爲$n,代表匹配中被記住的第n的匹配字符串(注意小括號可以記憶匹配)。
例子1:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.replace(regx,”00”);
rs的值爲:003userddd0045
例子2:
var regx=/u(se)r/d/g;
var str=“user13userddduser345”;
var rs=str.replace(regx,”$1”);
rs的值爲:se3userdddse45
對於replace(expr,str)方法還要特別注意一點,如果expr是一個表達式對象則會進行全局替換(此時表達式必須附加參數g,否則也只是替換第一個匹配),如果expr是一個字符串對象,則只會替換第一個匹配的部分。
例如:
var regx=“user”
var str=“user13userddduser345”;
var rs=str.replace(regx,”00”);
rs的值爲: 0013userddduser345
④split(expr),將字符串以匹配expr的部分做分割,返回一個數組,而且表達式是否附加參數g都沒有關係,結果是一樣的。
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.split(regx);
rs的值爲:{3userddd,45}
-
微信羣裏怎麼拍一拍,具體操作步驟
1、操作步驟:首先打開手機上的【微信】。2、打開微信之後,我們點擊打開羣好友【聊天窗口】。3、打開聊天窗口後,我們快速雙擊【好友的頭像】。4、雙擊好友後,對方就收到消息【拍了拍你】雙方的聊天窗口都會有提示。...
-
微博怎麼顯示手機型號,微博如何顯示手機型號
微博怎麼顯示手機型號:1、首先需要點擊手機桌面中的微博。2、然後再點擊屏幕右下方的我的。3、然後再點擊屏幕上方的設置圖標。4、然後再點擊會員專屬設置。5、然後再點擊微博來源。6、最後選擇想要顯示的手機型號就可以了。...
-
手機呼叫失敗是怎麼了
手機網絡衝突、處於飛行模式、手機信號不好、網絡設置不對或者是電話卡出現問題以及手機硬件有故障都會導致手機呼叫失敗,我們需要找出手機呼叫失敗的原因,然後再有針對性的去解決問題。如果我們不小心點開了手機的【飛行模式】,那麼就無法撥打電話了,要馬上把手機...
-
載人火箭頂部有一個尖頂叫什麼塔
1、載人火箭頂部有一個尖頂叫逃逸塔,又名逃生塔,裝在飛船頂端,從遠處看像是火箭上的避雷針,與一般火箭圓錐形的頭部很不相同。2、由塔架、逃逸發動機和分離發動機(均爲固體火箭發動機)組成,發生緊急情況時,逃逸發動機迅速點火,使航天員座艙(返回艙)與固體火箭分離,迅速脫離...