javascript 正則表達式 候選

候選,即用"|"來表示模式的或關係。語法爲expression | expression,符號"|"左右兩邊表示式是 "或"的關係,在模式匹配時可匹配左邊或者右邊。

例如正則表達式爲/John|Jack/,匹配字符串爲"Jack is at home,where is John",可以成功匹配到字串"Jack",再次匹配時也可成功匹配到"John"。候選,即用"|"來表示模式的或關係。語法爲expression | expression,符號"|"左右兩邊表示式是 "或"的關係,在模式匹配時可匹配左邊或者右邊。

例如正則表達式爲/John|Jack/,匹配字符串爲"Jack is at home,where is John",可以成功匹配到字串"Jack",再次匹配時也可成功匹配到"John"。

實例:
<script type="text/javascript">
<!--
var str = "Jack is at home,where is John";
var reg = /John|Jack/g;
var arr = reg.exec(str);
if(arr){
    document.write(arr+"匹配成功<br>");
}else{
    document.write(arr+"匹配失敗<br>");
}
arr = reg.exec(str);
if(arr){
    document.write(arr+"匹配成功");
}else{
    document.write(arr+"匹配失敗");
}
-->
</script>
輸出:
Jack匹配成功
John匹配成功

---------------------------------------------------------------------------------------------------------------
至此,分析電話號碼的正則表達式如下所示:
/^(((\d{3})|(\d{3}-))(\d{8}))$|^(((\d{4})|(\d{4}-))(\d{7}))$/

電話號碼是 3位區號加8位號碼,或者4位區號加7位號碼,這就是一個"或"的關係。所以,整個表達式總體爲/^()$|^()$/,再考慮左右兩邊括號的內容。

三位區號可以用\d{3}表示,8位號碼可以用\d{8}來表示,可能中間還有"-"隔開,所以添加了一個\d{3}-的選擇,所以左邊爲^((\d{3})|(\d{3}-))(\d{8})$。那右邊4位區號加7位號碼就可以葫蘆畫瓢爲^((\d{4})|(\d{4}-))(\d{7})$,最終得到整個正則表達式進行模式匹配。

實例:
<script type="text/javascript">
<!--
    function testSplit(){
        var myStr = "數學95;語文85;英語89;生物71";
        var regex = /;/;
        var splitArr = myStr.split(regex);
        var msg = "";
        for(var i = 0; i < splitArr.length; i++){
            msg += splitArr[i]+"\n";
        }
        alert(msg);
    }
    testSplit();
//-->
</script>
發佈了15 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章