1. 程式人生 > >javascripts使用正則表示式--1概念與定義

javascripts使用正則表示式--1概念與定義

正則表示式(regular Expression)是一個描述字元模式的物件,其中字元模式由普通字元(如A~Z 、a~z、0~9)和特殊字元(元字元)組成

一、 正則表示式的運用範圍:

  1、驗證字串:驗證給定的字串或子字串是否符合指定特徵,例如,驗證郵件地址、電話號碼、手機號碼等使用者提交的資料是否合法

2、查詢字串:從指定的文字中查詢符合特徵的字串

3、替換字串:把給定的符合特徵的字串替換成其他字串

4、提取字串:從給定的字串中提取符合指定特徵的子字串

 

二、定義正則表示式

javascript通過RegExp物件實現對正則表示式的支援

定義正則表示式的兩種方法:構造方法(字串匹配模式) &&  直接量(正則表示式匹配模式)

  1、  構造方法: 第一個引數為匹配模式,第二個引數為修飾性 字元 ,可選(g,i,m)

         g:全域性匹配字元(global的縮寫),即指定的字串範圍內的執行所有的匹配查詢

         i:大小寫不敏感字元(case-insensitive),即視字串中字母大小寫 為等同

         m:多行匹配字元(multiline的縮寫),即能夠在多行字串中執行操作

   1.1 var r1=new RegExp("a")

   1.2  var r2=new RegExp("a","gi")

     var s="javascript"

     var  a1=s.match(r1);

    var  a2=s.match(r2);

    alert(a1);//返回陣列["a"],注:只返回字串中第一個 匹配字元

    alert(a2);//返回陣列["a","a","A","A"]

 

  首字元查詢

 var  r=new RegExp("\\b\\w","gi");//用\轉義,其中\b表示單詞邊界   \w表示任意ASCII字元

 var  s="javascript JAVA";

 var  a=s.match(r);

alert(a);// ["j","J"]

   

  2、   直接量

  首字元查詢

 var  r=/\b\w/gi;

 var  s="javascript JAVA";

 var  a=s.match(r);

alert(a);// ["j","J"]

 

建構函式和直接量的區別:

    1\ 建構函式接收的是字串,其中  第一個引數 如果是特殊字元必須使用   雙反斜杆 表示,如\\b\\w,以防止字串中每個字元被EegExp()建構函式轉義,第二個引數的修飾詞也應該使用 引號 表示 "gi"

  正則表示式直接量,每個字元都是按照正則表示式的規則來定義,普通字元和特殊字元都會被轉義

     2  建構函式可以動態建立正則,但直接量不可以

var  r=new RegExp("a"+s+"b","g");//動態建立正則表示式

var r=/"a"+s+"b"/g; //錯誤的用法,因為對於直接量來說,“"”和“+”都視為普通的字元