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 把字符串分割爲字符串數組。