在JavaScript中,RegExp對象表示正則表達式,用來對字元串進行匹配。 一、兩種定義方法: 1、直接量法: /pattern/attribute 2、對象法: new RegExp(pattern,attribute); 參數說明: pattern是一個字元串,指定了正則表達式的模式或其他 ...
在JavaScript中,RegExp對象表示正則表達式,用來對字元串進行匹配。
一、兩種定義方法:
1、直接量法:
/pattern/attribute
2、對象法:
new RegExp(pattern,attribute);
參數說明:
pattern是一個字元串,指定了正則表達式的模式或其他的正則表達式;
attribute是一個可選的字元串,用來模式匹配的範圍,包括i,g,m三個字元,分別代表區分大小寫匹配、全局匹配和多行匹配。(如果pattern是正則表達式而不是字元串,怎必須刪除該參數)
i-->ignoreCase;
g-->gloable;
m-->multiLine;
二、正則表達式語法說明:
正則表達式的語法從修飾符、方括弧、元字元、量詞、RegExp對象屬性、RegExp對象方法和支持正則表達式的String對象的方法等七個方面進行描述:
1、修飾符:
修飾符 | 描述 |
i | 執行對大小寫不敏感的匹配 |
g | 執行全部匹配(查找所有的匹配項,而非在找到第一個匹配項後結束) |
m | 執行多行匹配 |
2、方括弧:
表達式 | 描述 |
[abcd] | 查找給定集合內的任意字元 |
[^abcd] | 查找不在給定集合內的任意字元 |
[0-9] | 查找任何從0到9的數字 |
[a-z] | 查找任何從a到z的小寫字母 |
[A-Z] | 查找任何從A到Z的大寫字母 |
[A-z] | 查找任何從大寫A到小寫z的字母 |
[red|blue|green] | 查找任何指定的選項 |
3、元字元
元字元 | 描述 |
. | 查找任意一個字元,不包括換行符和行結束符 |
\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字元 |
4、量詞
量詞 | 描述 |
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的字元串 |
5、RegExp對象屬性
屬性 | 描述 |
gloable | RegExp對象是否有g標示,RegExpObject.global,返回boolean類型 |
ignoreCase | RegExp對象是否有i標示,RegExpObject.global,返回boolean類型 |
multiline | RegExp對象是否有m標示,RegExpObject.global,返回boolean類型 |
lastIndex | 一個整數,表示下一次開始匹配的位置 |
source | 正則表達式原文本 ,返回模式匹配所用的文本 |
6、 RegExp對象方法
方法 | 描述 |
compile | 編譯正則表達式。用法:RegExpObject.compile(regexp,modifier) modifier規定匹配的類型-->i,m,g |
exec | 檢索字元串中指定的值,返回找到的值並確定其位置,如果沒找到則返回null |
test | 檢索字元串中指定的值,返回boolean類型.用來判斷一個字元串是否匹配某個模式,RegExpObject.test(String) |
7、支持正則表達式的 String 對象的方法
方法 | 描述 |
search | 檢索與正則表達式相匹配的值或指定的子字元串。用法:stringObject.search(regexp) |
match | 匹配指定的值或與一個或多個正則表達式匹配的字元串。用法:stringObject.match(searchvalue);stringObject.match(regexp) |
replace | 用一些字元替換另一些字元或替換與一個正則表達式匹配的子串。用法:stringObject.replace(regexp/substr,replacement),前者是子串或要替換的正則表達式,後者是替換文本 |
split | 用於把一個字元串分割成字元串數組。用法:stringObject.split(separator,howmany)。前者必須,字元串或正則表達式,從該參數指定的地方開始分割。 |