天天看點

JavaScript RegExp 對象

正規表達式是描述字元模式的對象。

正規表達式用于對字元串模式比對及檢索替換,是對字元串執行模式比對的強大工具。

var patt=new RegExp(pattern,modifiers);

或者更簡單的方式:

var patt=/pattern/modifiers;

pattern(模式) 描述了表達式的模式

modifiers(修飾符) 用于指定全局比對、區分大小寫的比對和多行比對

注意:當使用構造函數創造正則對象時,需要正常的字元轉義規則(在前面加反斜杠 \)。比如,以下是等價的:

更多關于 RegExp 對象請閱讀我們的

JavaScript RegExp 對象教程。

修飾符用于執行區分大小寫和全局比對:

修飾符

描述

i

執行對大小寫不敏感的比對。

g

執行全局比對(查找所有比對而非在找到第一個比對後停止)。

m

執行多行比對。

方括号用于查找某個範圍内的字元:

表達式

[abc]

查找方括号之間的任何字元。

[^abc]

查找任何不在方括号之間的字元。

[0-9]

查找任何從 0 至 9 的數字。

[a-z]

查找任何從小寫 a 到小寫 z 的字元。

[A-Z]

查找任何從大寫 A 到大寫 Z 的字元。

[A-z]

查找任何從大寫 A 到小寫 z 的字元。

[adgk]

查找給定集合内的任何字元。

[^adgk]

查找給定集合外的任何字元。

(red|blue|green)

查找任何指定的選項。

元字元(Metacharacter)是擁有特殊含義的字元:

元字元

.

查找單個字元,除了換行和行結束符。

\w

查找數字、字母及下劃線。

\W

查找非單詞字元。

\d

查找數字。

\D

查找非數字字元。

\s

查找空白字元。

\S

查找非空白字元。

\b

比對單詞邊界。

\B

比對非單詞邊界。

\0

查找 NULL 字元。

\n

查找換行符。

\f

查找換頁符。

\r

查找回車符。

\t

查找制表符。

\v

查找垂直制表符。

\xxx

查找以八進制數 xxx 規定的字元。

\xdd

查找以十六進制數 dd 規定的字元。

\uxxxx

查找以十六進制數 xxxx 規定的 Unicode 字元。

量詞

n+

比對任何包含至少一個 n 的字元串。

例如,/a+/ 比對 "candy" 中的 "a","caaaaaaandy" 中所有的 "a"。

n*

比對任何包含零個或多個 n 的字元串。

例如,/bo*/ 比對 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b",但是不比對 "A goat grunted"。

n?

比對任何包含零個或一個 n 的字元串。

例如,/e?le?/ 比對 "angel" 中的 "el","angle" 中的 "le"。

n{X}

比對包含 X 個 n 的序列的字元串。

例如,/a{2}/ 不比對 "candy," 中的 "a",但是比對 "caandy," 中的兩個 "a",且比對 "caaandy." 中的前兩個 "a"。

n{X,}

X 是一個正整數。前面的模式 n 連續出現至少 X 次時比對。

例如,/a{2,}/ 不比對 "candy" 中的 "a",但是比對 "caandy" 和 "caaaaaaandy." 中所有的 "a"。

n{X,Y}

X 和 Y 為正整數。前面的模式 n 連續出現至少 X 次,至多 Y 次時比對。

例如,/a{1,3}/ 不比對 "cndy",比對 "candy," 中的 "a","caandy," 中的兩個 "a",比對 "caaaaaaandy" 中的前面三個 "a"。注意,當比對 "caaaaaaandy" 時,即使原始字元串擁有更多的 "a",比對項也是 "aaa"。

n$

比對任何結尾為 n 的字元串。

^n

比對任何開頭為 n 的字元串。

?=n

比對任何其後緊接指定字元串 n 的字元串。

?!n

比對任何其後沒有緊接指定字元串 n 的字元串。

方法

compile

在 1.5 版本中已廢棄。 編譯正規表達式。

exec

檢索字元串中指定的值。傳回找到的值,并确定其位置。

test

檢索字元串中指定的值。傳回 true 或 false。

toString

傳回正規表達式的字元串。

FF

IE

search

檢索與正規表達式相比對的值。

1

4

match

找到一個或多個正規表達式的比對。

replace

替換與正規表達式比對的子串。

split

把字元串分割為字元串數組。

屬性

constructor

傳回一個函數,該函數是一個建立 RegExp 對象的原型。

global

判斷是否設定了 "g" 修飾符

ignoreCase

判斷是否設定了 "i" 修飾符

lastIndex

用于規定下次比對的起始位置

multiline

判斷是否設定了 "m" 修飾符

source

傳回正規表達式的比對模式