JavaScript RegExp 對象

RegExp 對象javascript

RegExp 對象表示正則表達式,它是對字符串執行模式匹配的強大工具。java

直接量語法正則表達式

/pattern/attributes

建立 RegExp 對象的語法:數組

new RegExp(pattern, attributes);

參數 pattern 是一個字符串,指定了正則表達式的模式或其餘正則表達式。函數

參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript 標準化以前,不支持 m 屬性。若是 pattern 是正則表達式,而不是字符串,則必須省略該參數。工具

返回值this

一個新的 RegExp 對象,具備指定的模式和標誌。若是參數 pattern 是正則表達式而不是字符串,那麼 RegExp() 構造函數將用與指定的 RegExp 相同的模式和標誌建立一個新的 RegExp 對象。code

若是不用 new 運算符,而將 RegExp() 做爲函數調用,那麼它的行爲與用 new 運算符調用時同樣,只是當 pattern 是正則表達式時,它只返回 pattern,而再也不建立一個新的 RegExp 對象。對象

拋出ip

SyntaxError - 若是 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和 "m" 以外的字符,拋出該異常。

TypeError - 若是 pattern 是 RegExp 對象,但沒有省略 attributes 參數,拋出該異常。

修飾符

i 執行對大小寫不敏感的匹配。

g 執行全局匹配(查找全部匹配而非在找到第一個匹配後中止)。

m 執行多行匹配。

方括號

方括號用於查找某個範圍內的字符:

表達式 描述

[abc] 查找方括號之間的任何字符。

[^abc] 查找任何不在方括號之間的字符。

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

[a-z] 查找任何從小寫 a 到小寫 z 的字符。

[A-Z] 查找任何從大寫 A 到大寫 Z 的字符。

[A-z] 查找任何從大寫 A 到小寫 z 的字符。

[adgk] 查找給定集合內的任何字符。

[^adgk] 查找給定集合外的任何字符。

元字符

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

元字符 描述

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

<script type="text/javascript">
var str="That's hot!";
var patt1=/h.t/g;
document.write(str.match(patt1));//返回hat,hot 
</script>

\w 查找單詞字符。

\W 查找非單詞字符。

\d 查找數字。

\D 查找非數字字符。

量詞

量詞 描述

n+ 匹配任何包含至少一個 n 的字符串。

n* 匹配任何包含零個或多個 n 的字符串。

<script type="text/javascript">
var str="1, 100 or 1000?"; 
var patt1= /10*/g;
document.write(str.match(patt1));//返回1,100,1000 對 "1" 進行全局搜索,包括其後緊跟的一個或多個 "0"
</script>

n? 匹配任何包含零個或一個 n 的字符串。

n{X} 匹配包含 X 個 n 的序列的字符串。

n{X,Y} 匹配包含 X 或 Y 個 n 的序列的字符串。

<script type="text/javascript">
var str="100, 1000 or 10000?";
var patt1=/\d{3,4}/g; 
document.write(str.match(patt1));//返回100,1000,1000 對包含三位或四位數字序列的子串進行全局搜索:
</script>

n{X,} 匹配包含至少 X 個 n 的序列的字符串。

n$ 匹配任何結尾爲 n 的字符串。

^n 匹配任何開頭爲 n 的字符串。

?=n 匹配任何其後緊接指定字符串 n 的字符串。

<script type="text/javascript">
var str="Is this all there is";
var patt1=/is(?= all)/;
document.write(str.match(patt1));//返回is 對其後緊跟 "all" 的 "is" 進行全局搜索:
</script>

?!n 匹配任何其後沒有緊接指定字符串 n 的字符串。

RegExp 對象屬性

屬性 描述

lastIndex 一個整數,標示開始下一次匹配的字符位置。

multiline RegExp 對象是否具備標誌

source 正則表達式的源文本。

RegExp 對象方法

方法 描述

compile 編譯正則表達式。

exec 檢索字符串中指定的值。返回找到的值,並肯定其位置。

test 檢索字符串中指定的值。返回 true 或 false。

<script type="text/javascript">
var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);
document.write("Result: " + result);//返回Result: true 
</script>

支持正則表達式的 String 對象的方法

方法 描述

search 檢索與正則表達式相匹配的值。

match 找到一個或多個正則表達式的匹配。

replace 替換與正則表達式匹配的子串。

split 把字符串分割爲字符串數組。

RegExp 對象

RegExp 對象表示正則表達式,它是對字符串執行模式匹配的強大工具。

直接量語法

/pattern/attributes

建立 RegExp 對象的語法:

new RegExp(pattern, attributes);參數

參數 pattern 是一個字符串,指定了正則表達式的模式或其餘正則表達式。

參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript 標準化以前,不支持 m 屬性。若是 pattern 是正則表達式,而不是字符串,則必須省略該參數。

返回值

一個新的 RegExp 對象,具備指定的模式和標誌。若是參數 pattern 是正則表達式而不是字符串,那麼 RegExp() 構造函數將用與指定的 RegExp 相同的模式和標誌建立一個新的 RegExp 對象。

若是不用 new 運算符,而將 RegExp() 做爲函數調用,那麼它的行爲與用 new 運算符調用時同樣,只是當 pattern 是正則表達式時,它只返回 pattern,而再也不建立一個新的 RegExp 對象。

拋出

SyntaxError - 若是 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和 "m" 以外的字符,拋出該異常。

TypeError - 若是 pattern 是 RegExp 對象,但沒有省略 attributes 參數,拋出該異常。

修飾符

i 執行對大小寫不敏感的匹配。

g 執行全局匹配(查找全部匹配而非在找到第一個匹配後中止)。

m 執行多行匹配。

方括號

方括號用於查找某個範圍內的字符:

表達式 描述

[abc] 查找方括號之間的任何字符。

[^abc] 查找任何不在方括號之間的字符。

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

[a-z] 查找任何從小寫 a 到小寫 z 的字符。

[A-Z] 查找任何從大寫 A 到大寫 Z 的字符。

[A-z] 查找任何從大寫 A 到小寫 z 的字符。

[adgk] 查找給定集合內的任何字符。

[^adgk] 查找給定集合外的任何字符。

元字符

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

元字符 描述

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

<script type="text/javascript">
var str="That's hot!";
var patt1=/h.t/g;
document.write(str.match(patt1));//返回hat,hot 
</script>

\w 查找單詞字符。

\W 查找非單詞字符。

\d 查找數字。

\D 查找非數字字符。

量詞

量詞 描述

n+ 匹配任何包含至少一個 n 的字符串。

n* 匹配任何包含零個或多個 n 的字符串。

<script type="text/javascript">
var str="1, 100 or 1000?"; 
var patt1= /10*/g;
document.write(str.match(patt1));//返回1,100,1000 對 "1" 進行全局搜索,包括其後緊跟的一個或多個 "0"
</script>

n? 匹配任何包含零個或一個 n 的字符串。

n{X} 匹配包含 X 個 n 的序列的字符串。

n{X,Y} 匹配包含 X 或 Y 個 n 的序列的字符串。

<script type="text/javascript">
var str="100, 1000 or 10000?";
var patt1=/\d{3,4}/g; 
document.write(str.match(patt1));//返回100,1000,1000 對包含三位或四位數字序列的子串進行全局搜索:
</script>

n{X,} 匹配包含至少 X 個 n 的序列的字符串。

n$ 匹配任何結尾爲 n 的字符串。

^n 匹配任何開頭爲 n 的字符串。

?=n 匹配任何其後緊接指定字符串 n 的字符串。

<script type="text/javascript">
var str="Is this all there is";
var patt1=/is(?= all)/;
document.write(str.match(patt1));//返回is 對其後緊跟 "all" 的 "is" 進行全局搜索:
</script>

?!n 匹配任何其後沒有緊接指定字符串 n 的字符串。

RegExp 對象屬性

屬性 描述

lastIndex 一個整數,標示開始下一次匹配的字符位置。

multiline RegExp 對象是否具備標誌

source 正則表達式的源文本。

RegExp 對象方法

方法 描述

compile 編譯正則表達式。

exec 檢索字符串中指定的值。返回找到的值,並肯定其位置。

test 檢索字符串中指定的值。返回 true 或 false。

<script type="text/javascript">
var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);
document.write("Result: " + result);//返回Result: true 
</script>

支持正則表達式的 String 對象的方法

方法 描述

search 檢索與正則表達式相匹配的值。

match 找到一個或多個正則表達式的匹配。

replace 替換與正則表達式匹配的子串。

split 把字符串分割爲字符串數組。

RegExp 對象

RegExp 對象表示正則表達式,它是對字符串執行模式匹配的強大工具。

直接量語法

/pattern/attributes

建立 RegExp 對象的語法:

new RegExp(pattern, attributes);參數

參數 pattern 是一個字符串,指定了正則表達式的模式或其餘正則表達式。

參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript 標準化以前,不支持 m 屬性。若是 pattern 是正則表達式,而不是字符串,則必須省略該參數。

返回值

一個新的 RegExp 對象,具備指定的模式和標誌。若是參數 pattern 是正則表達式而不是字符串,那麼 RegExp() 構造函數將用與指定的 RegExp 相同的模式和標誌建立一個新的 RegExp 對象。

若是不用 new 運算符,而將 RegExp() 做爲函數調用,那麼它的行爲與用 new 運算符調用時同樣,只是當 pattern 是正則表達式時,它只返回 pattern,而再也不建立一個新的 RegExp 對象。

拋出

SyntaxError - 若是 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和 "m" 以外的字符,拋出該異常。

TypeError - 若是 pattern 是 RegExp 對象,但沒有省略 attributes 參數,拋出該異常。

修飾符

i 執行對大小寫不敏感的匹配。

g 執行全局匹配(查找全部匹配而非在找到第一個匹配後中止)。

m 執行多行匹配。

方括號

方括號用於查找某個範圍內的字符:

表達式 描述

[abc] 查找方括號之間的任何字符。

[^abc] 查找任何不在方括號之間的字符。

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

[a-z] 查找任何從小寫 a 到小寫 z 的字符。

[A-Z] 查找任何從大寫 A 到大寫 Z 的字符。

[A-z] 查找任何從大寫 A 到小寫 z 的字符。

[adgk] 查找給定集合內的任何字符。

[^adgk] 查找給定集合外的任何字符。

元字符

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

元字符 描述

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

<script type="text/javascript">
var str="That's hot!";
var patt1=/h.t/g;
document.write(str.match(patt1));//返回hat,hot 
</script>

\w 查找單詞字符。

\W 查找非單詞字符。

\d 查找數字。

\D 查找非數字字符。

量詞

量詞 描述

n+ 匹配任何包含至少一個 n 的字符串。

n* 匹配任何包含零個或多個 n 的字符串。

<script type="text/javascript">
var str="1, 100 or 1000?"; 
var patt1= /10*/g;
document.write(str.match(patt1));//返回1,100,1000 對 "1" 進行全局搜索,包括其後緊跟的一個或多個 "0"
</script>

n? 匹配任何包含零個或一個 n 的字符串。

n{X} 匹配包含 X 個 n 的序列的字符串。

n{X,Y} 匹配包含 X 或 Y 個 n 的序列的字符串。

<script type="text/javascript">
var str="100, 1000 or 10000?";
var patt1=/\d{3,4}/g; 
document.write(str.match(patt1));//返回100,1000,1000 對包含三位或四位數字序列的子串進行全局搜索:
</script>

n{X,} 匹配包含至少 X 個 n 的序列的字符串。

n$ 匹配任何結尾爲 n 的字符串。

^n 匹配任何開頭爲 n 的字符串。

?=n 匹配任何其後緊接指定字符串 n 的字符串。

<script type="text/javascript">
var str="Is this all there is";
var patt1=/is(?= all)/;
document.write(str.match(patt1));//返回is 對其後緊跟 "all" 的 "is" 進行全局搜索:
</script>

?!n 匹配任何其後沒有緊接指定字符串 n 的字符串。

RegExp 對象屬性

屬性 描述

lastIndex 一個整數,標示開始下一次匹配的字符位置。

multiline RegExp 對象是否具備標誌

source 正則表達式的源文本。

RegExp 對象方法

方法 描述

compile 編譯正則表達式。

exec 檢索字符串中指定的值。返回找到的值,並肯定其位置。

test 檢索字符串中指定的值。返回 true 或 false。

<script type="text/javascript">
var str = "Visit W3School";
var patt1 = new RegExp("W3School");
var result = patt1.test(str);
document.write("Result: " + result);//返回Result: true 
</script>

支持正則表達式的 String 對象的方法

方法 描述

search 檢索與正則表達式相匹配的值。

match 找到一個或多個正則表達式的匹配。

replace 替換與正則表達式匹配的子串。

split 把字符串分割爲字符串數組。

相關文章
相關標籤/搜索