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; //錯誤的用法,因為對於直接量來說,“"”和“+”都視為普通的字元