java和js中正規表示式的用法和區別

EmineWang發表於2013-10-18

首先在java中,

1、匹配正規表示式使用matches

如string qq = 36786256;

s.matches("[1-9]\\d{4,10}");

2、也可以用matcher

Pattern  p = Pattern.compile("A\\d");//建立模式物件

Matcher m = p.matcher"gaha");

if(m.matches)

{

    System.out.println("完全匹配")

}

else

{

  System.out.println("不完全匹配")

}



在js中

<script>

function dochecked()
{

    var pattern = /^\d+[.]?\d+$/;   //前面加上^後面加上$  表示這句話要完全匹配。

    var vf1 = document.queryForm.f2Text.value; //文字框

    var va1 = document.queryForm.a2.checked;     //單選按鈕 

    if(va1){

    if(!patrn.test(vf1))

  {

    //這裡使用exec方法匹配,對string進行正則處理,並返回匹配結果.array[0]為原字串,array[i]為匹配在整個被搜尋字串中的位置
      alert("有誤");

      return;

    }

else

{

  alert("成功");

}
}

</script>


java和js正規表示式的區別

首先

java中需要轉義字元\\d

而js中直接用\d


附:


exec:對string進行正則處理,並返回匹配結果.array[0]為原字串,array[i]為匹配在整個被搜尋字串中的位置。
test:測試string是否包含有匹配結果,包含返回true,不包含返回null。
match(pattern):根據pattern進行正則匹配,如果匹配到,返回匹配結果,如匹配不到返回null
search(pattern):根據pattern進行正則匹配,如果匹配到一個結果,則返回它的索引數;否則返回-1
replace(pattern,replacement):根據pattern進行正則匹配,把匹配結果替換為replacement
split(pattern):根據pattern進行正則分割,返回一個分割的陣列
例項:
function checkForm() {
 

   var u =document.form_name.check.value;
    var s =/^[-a-zA-Z0-9_]+(\.[-a-zA-Z0-9_]+)*@[-a-zA-Z0-9_]+(\.[-a-zA-Z0-9_]+)*$/;
    var a =s.exec(u);
    var a =s.test(u);
    var a =u.match(s);
    var a =u.search(s);
   alert(a);
}
replace
最簡單的算是能力就是簡單的字元替換。示例程式碼如下:
 var u = "javascript is a good scriptlanguage";
 //在此我想將字母a替換成字母A
 var s = /a/g;
var a = u.replace(s,"A");
</script>
split

<script type="text/javascript">
var str="How are you doing today?"
document.write(str.split(" ") + "<br/>")
document.write(str.split("") + "<br/>")
document.write(str.split(" ",3))
</script>

輸出結果為:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you


   

  





相關文章