在JavaScript中,RegExp對象表示正則表達式,用來對字符串進行匹配。正則表達式
1、兩種定義方法:數組
一、直接量法:spa
/pattern/attributecode
二、對象法:regexp
new RegExp(pattern,attribute);對象
參數說明:blog
pattern是一個字符串,指定了正則表達式的模式或其餘的正則表達式;ip
attribute是一個可選的字符串,用來模式匹配的範圍,包括i,g,m三個字符,分別表明區分大小寫匹配、全局匹配和多行匹配。(若是pattern是正則表達式而不是字符串,怎必須刪除該參數)ci
i-->ignoreCase;unicode
g-->gloable;
m-->multiLine;
2、正則表達式語法說明:
正則表達式的語法從修飾符、方括號、元字符、量詞、RegExp對象屬性、RegExp對象方法和支持正則表達式的String對象的方法等七個方面進行描述:
一、修飾符:
修飾符 | 描述 |
i | 執行對大小寫不敏感的匹配 |
g | 執行所有匹配(查找全部的匹配項,而非在找到第一個匹配項後結束) |
m | 執行多行匹配 |
二、方括號:
表達式 | 描述 |
[abcd] | 查找給定集合內的任意字符 |
[^abcd] | 查找不在給定集合內的任意字符 |
[0-9] | 查找任何從0到9的數字 |
[a-z] | 查找任何從a到z的小寫字母 |
[A-Z] | 查找任何從A到Z的大寫字母 |
[A-z] | 查找任何從大寫A到小寫z的字母 |
[red|blue|green] | 查找任何指定的選項 |
三、元字符
元字符 | 描述 |
. | 查找任意一個字符,不包括換行符和行結束符 |
\w | 查找單詞字符,單詞字符包括a-z、A-Z、0-9和下劃線 |
\W | 查找非單詞字符 |
\d | 查找數字 |
\D | 查找非數字字符 |
\s | 查找空白字符,包括空格符、製表符、回車符、換行符、垂直換行符和換頁符 |
\S | 查找非空白字符 |
\b | 匹配單詞邊界 |
\B | 匹配非單詞邊界 |
\0 | 查找null字符 |
\n | 查找換行符,返回換行符被找到的位置,若是沒有就返回-1 |
\f | 查找換頁符 |
\r | 查找回車符 |
\t | 查找製表符 |
\v | 查找垂直製表符 |
\××× | 查找以八進制數×××規定的字符 |
\×dd | 查找以十六進制dd規定的字符 |
\u×××× | 查找以十六進制××××規定的unicode字符 |
四、量詞
量詞 | 描述 |
n+ | 匹配包含至少一個n的字符串 |
n* | 匹配包含0個或多個n的字符串 |
n? | 匹配包含0個或1個n的字符串 |
n{X} | 匹配包含x個n的序列的字符串 |
n{X,Y} | 匹配包含X個或Y個n的序列的字符串 |
n{X,} | 匹配至少包含X個n的序列的字符串 |
n$ | 匹配任何以n結尾的字符串 |
^n | 匹配任何以n開頭的字符串 |
?=n | 匹配任何其後緊接指定字符串n的字符串 |
?!n | 匹配任何其後不緊接指定字符串n的字符串 |
五、RegExp對象屬性
屬性 | 描述 |
gloable | RegExp對象是否有g標示,RegExpObject.global,返回boolean類型 |
ignoreCase | RegExp對象是否有i標示,RegExpObject.global,返回boolean類型 |
multiline | RegExp對象是否有m標示,RegExpObject.global,返回boolean類型 |
lastIndex | 一個整數,表示下一次開始匹配的位置 |
source | 正則表達式原文本 ,返回模式匹配所用的文本 |
六、 RegExp對象方法
方法 | 描述 |
compile | 編譯正則表達式。 用法:RegExpObject.compile(regexp,modifier) modifier規定匹配的類型-->i,m,g |
exec | 檢索字符串中指定的值,返回找到的值並肯定其位置,若是沒找到則返回null |
test | 檢索字符串中指定的值,返回boolean類型.用來判斷一個字符串是否匹配某個模式,RegExpObject.test(String) |
七、支持正則表達式的 String 對象的方法
方法 | 描述 |
search | 檢索與正則表達式相匹配的值或指定的子字符串。用法:stringObject.search(regexp) |
match | 匹配指定的值或與一個或多個正則表達式匹配的字符串。用法:stringObject.match(searchvalue);stringObject.match(regexp) |
replace | 用一些字符替換另外一些字符或替換與一個正則表達式匹配的子串。用法:stringObject.replace(regexp/substr,replacement),前者是子串或要替換的正則表達式,後者是替換文本 |
split | 用於把一個字符串分割成字符串數組。用法:stringObject.split(separator,howmany)。前者必須,字符串或正則表達式,從該參數指定的地方開始分割。 |