regular 正則
express 表達式
global全局
表單驗證技術之一:正則表達式
7.1:什麼是正則表達式:
正則表達式是一個描述字符模型的對象,它是由一些特殊的符號組成的,這些符號和SQL Server中學過的通配符一樣,其組成的字符模式用來匹配各種表達式,
1.定義正則表達式
定義正則表達式有兩種構造形式,1:普通方式,2:構造函數
1)普通方式
var reg=/表達式/附加參數
表達式:一個字符串代表了某種規則,其中可以使用某些特殊字符來代表特殊的規則
附加參數:用來擴展表達式的含義,主要有以下三個參數
g:代表可以進行全局匹配
i:代表不區分大小寫匹配
m:代表可以進行多行匹配
上面三個參數可以任意組合,代表複合含義,當然也可以不加參數,例如:
var reg=/white/;
var reg=/white/g;
2)構造函數
var reg=new RegExp("表達式",“附加參數”);
其中表達式與附加參數的含義與上面普通方式中的定義的含義相同,例如:
var reg =new RegExp("white");
var reg =new RegExp("white","g");
2.表達式的模式
從規範上講:表達式的模式分爲簡單模式和複合模式
1)簡單模式
簡單模式是指通過普通字符的組合來表達的模式,例如:
var reg=/china/;
var reg=/abc8/;
可見簡單模式只能表示具體的匹配,如果匹配一個郵箱或一個電話號碼,就不能使用具體的匹配,這時就用到了複合模式
2)複合模式
複合模式是指含有通配符來表達的模式,這裏的通配符雨SQL Server 中的通配符相似,例如:
var reg =/^\w+$/;
其中+、\w、^和$都是通配符,代表着特殊的含義,因此複合模式可以表達更爲抽象化的規則模式。
RegExp對象
方法
exec 檢索字符中是正則表達式的匹配,返回找到的值,並確定其位置
test 檢索字符中指定的值,返回true或false
test()方法用於檢測一個字符串是否匹配某個模式
正則表達式對象實例.test(字符串);
如果字符串中含有與正則表達式匹配的文本,則返回true,否則返回false,例如:
var str="my cat";
var reg=/cat/;
var result=reg.test(str);
result的值爲true;
Javascript除了支持RegExp對象的正則表達式方法外,還支持String對象的正則表達式方法,String對象定義了使用正則表達式來執行強大的模式匹配和文本檢索與替換函數的方法。
String 對象的方法
方法:
match 找到一個或多個正則表達式的匹配
search 檢索與正則表達式相匹配的值
replace 替換與正則表達式匹配的字符串
split 把字符串分割爲字符串數組
match()方法可以在字符串內檢索指定的值,找到一個或多個正則表達式的匹配,該方法類似於indexOf(),但是indexOf()返回字符串的位置,而不是指定的值
match()語法:
字符串對象.match(searchString或regexpObject)
searchString是要檢索的字符串值,regexpObject是規定要匹配模式的RegExp對象。例如:
var str="my cat";
var reg=/cat/;
var result=str.match(reg);
result的值爲cat;
split()方法
split()方法將字符串分割成一系列子串並通過一個數組將這一系列子串返回,語法爲:
字符串對象.split(分隔符,n);
分隔符可以是字符串,也可以是正則表達式,n爲限制輸出數組的個數,爲可選項,如果不設置n,則返回包含整個字符串的元素數組,例如:
var str="red,blue,green,white";
var result =str.split(",");
string+=result[i]+"\n";
RegExp對象的屬性 描述
global RegExp對象是否具有標誌g
ignoreCase RegExp對象是否具有標誌i
multiline RegExp對象是否具有標誌m
global
global屬性用於返回正則表達式是否具有標誌g,它聲明瞭給定的正則表達式是否執行全局匹配,如果g標誌被設置,則該屬性爲true,否則false
ignoreCase
ignoreCase屬性用於返回正則表達式是否具有標誌i,它聲明瞭給定的正則表達式是否執行或略大小寫的匹配,如果i標誌被設置,則該屬性爲true,否則false
multiline
multiline屬性用於返回正則表達式是否具有標誌m,它聲明瞭給定的正則表達式是否以多行模式執行模式匹配,如果m標誌被設置,則該屬性爲true,否則false
電子郵箱的正則表達式"reg=/^\w+@\w+.[a-zA-Z]{2,3}(.[a-zA-Z]{2,3})?$/"
正則表達式的常用符號:
/.../ 代表一個模式的開始和結束
^ 匹配字符串的開始
$ 匹配字符串的結束
\s 任何空白字符
\S 任何非空白字符
\d 匹配一個數字字符,等價於[0-9]
\D 除了數字之外的任何字符,等價於[^0-9]
\w 匹配一個數字、下劃線或字母字符,等價於[A-Za-z0-9]