標籤:highlight 檢索 class cas 其他 search 方法 order ace
在JavaScript中,RegExp對象表示Regex,用來對字串進行匹配。
一、兩種定義方法:
1、直接量法:
/pattern/attribute
2、對象法:
new RegExp(pattern,attribute);
參數說明:
pattern是一個字串,指定了Regex的模式或其他的Regex;
attribute是一個可選的字串,用來模式比對的範圍,包括i,g,m三個字元,分別代表區分大小寫匹配、全域匹配和多行匹配。(如果pattern是Regex而不是字串,怎必須刪除該參數)
i-->ignoreCase;
g-->gloable;
m-->multiLine;
二、Regex文法說明:
Regex的文法從修飾符、方括弧、元字元、量詞、RegExp對象屬性、RegExp對象方法和支援Regex的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 |
Regex原文本 ,返回模式比對所用的文本 |
6、 RegExp對象方法
| 方法 |
描述 |
| compile |
編譯Regex。用法:RegExpObject.compile(regexp,modifier) modifier規定匹配的類型-->i,m,g |
| exec |
檢索字串中指定的值,返回找到的值並確定其位置,如果沒找到則返回null |
| test |
檢索字串中指定的值,返回boolean類型.用來判斷一個字串是否匹配某個模式,RegExpObject.test(String) |
7、支援Regex的 String 對象的方法
| 方法 |
描述 |
| search |
檢索與Regex相匹配的值或指定的子字串。用法:stringObject.search(regexp) |
| match |
匹配指定的值或與一個或多個Regex匹配的字串。用法:stringObject.match(searchvalue);stringObject.match(regexp) |
| replace |
用一些字元替換另一些字元或替換與一個Regex匹配的子串。用法:stringObject.replace(regexp/substr,replacement),前者是子串或要替換的Regex,後者是替換文本 |
| split |
用於把一個字串分割成字串數組。用法:stringObject.split(separator,howmany)。前者必須,字串或Regex,從該參數指定的地方開始分割。 |
JSRegex(轉載)