修飾符用於執行區分大小寫和全局匹配:javascript
修飾符html |
描述java |
igit |
執行對大小寫不敏感的匹配。web |
g正則表達式 |
執行全局匹配(查找全部匹配而非在找到第一個匹配後中止)。express |
m數組 |
執行多行匹配。函數 |
方括號用於查找某個範圍內的字符:grunt
表達式 |
描述 |
查找方括號之間的任何字符。 |
|
查找任何不在方括號之間的字符。 |
|
[0-9] |
查找任何從 0 至 9 的數字。 |
[a-z] |
查找任何從小寫 a 到小寫 z 的字符。 |
[A-Z] |
查找任何從大寫 A 到大寫 Z 的字符。 |
[A-z] |
查找任何從大寫 A 到小寫 z 的字符。 |
[adgk] |
查找給定集合內的任何字符。 |
[^adgk] |
查找給定集合外的任何字符。 |
(red|blue|green) |
查找任何指定的選項。 |
元字符(Metacharacter)是擁有特殊含義的字符:
元字符 |
描述 |
查找單個字符,除了換行和行結束符。 |
|
查找單詞字符。 |
|
查找非單詞字符。 |
|
查找數字。 |
|
查找非數字字符。 |
|
查找空白字符。 |
|
查找非空白字符。 |
|
匹配單詞邊界。 |
|
匹配非單詞邊界。 |
|
\0 |
查找 NULL 字符。 |
查找換行符。 |
|
\f |
查找換頁符。 |
\r |
查找回車符。 |
\t |
查找製表符。 |
\v |
查找垂直製表符。 |
查找以八進制數 xxx 規定的字符。 |
|
查找以十六進制數 dd 規定的字符。 |
|
查找以十六進制數 xxxx 規定的 Unicode 字符。 |
量詞 |
描述 |
匹配任何包含至少一個 n 的字符串。 例如,/a+/ 匹配 "candy" 中的 "a","caaaaaaandy" 中全部的 "a"。 |
|
匹配任何包含零個或多個 n 的字符串。 例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b",可是不匹配 "A goat grunted"。 |
|
匹配任何包含零個或一個 n 的字符串。 例如,/e?le?/ 匹配 "angel" 中的 "el","angle" 中的 "le"。 |
|
匹配包含 X 個 n 的序列的字符串。 例如,/a{2}/ 不匹配 "candy," 中的 "a",可是匹配 "caandy," 中的兩個 "a",且匹配 "caaandy." 中的前兩個 "a"。 |
|
n{X,} |
X 是一個正整數。前面的模式 n 連續出現至少 X 次時匹配。 例如,/a{2,}/ 不匹配 "candy" 中的 "a",可是匹配 "caandy" 和 "caaaaaaandy." 中全部的 "a"。 |
X 和 Y 爲正整數。前面的模式 n 連續出現至少 X 次,至多 Y 次時匹配。 例如,/a{1,3}/ 不匹配 "cndy",匹配 "candy," 中的 "a","caandy," 中的兩個 "a",匹配 "caaaaaaandy" 中的前面三個 "a"。注意,當匹配 "caaaaaaandy" 時,即便原始字符串擁有更多的 "a",匹配項也是 "aaa"。 |
|
匹配包含至少 X 個 n 的序列的字符串。 |
|
匹配任何結尾爲 n 的字符串。 |
|
匹配任何開頭爲 n 的字符串。 |
|
匹配任何其後緊接指定字符串 n 的字符串。 |
|
匹配任何其後沒有緊接指定字符串 n 的字符串。 |
方法 |
描述 |
FF |
IE |
編譯正則表達式。 |
1 |
4 |
|
檢索字符串中指定的值。返回找到的值,並肯定其位置。 |
1 |
4 |
|
檢索字符串中指定的值。返回 true 或 false。 |
1 |
4 |
方法 |
描述 |
FF |
IE |
檢索與正則表達式相匹配的值。返回下標,找不到返回-1 |
1 |
4 |
|
找到一個或多個正則表達式的匹配。返回數組,與g有關,不匹配返回null |
1 |
4 |
|
替換與正則表達式匹配的子串。返回替換後的字符串 |
1 |
4 |
|
把字符串分割爲字符串數組。返回數組 |
var patt=new RegExp(pattern,modifiers);
或者更簡單的方式:
var patt=/pattern/modifiers;
修飾符 |
描述 |
執行對大小寫不敏感的匹配。 |
|
執行全局匹配(查找全部匹配而非在找到第一個匹配後中止)。 |
|
m |
執行多行匹配。 |
注意:當使用構造函數創造正則對象時,須要常規的字符轉義規則(在前面加反斜槓 \)。好比,如下是等價的:
var re = new RegExp("\\w+");
var re = /\w+/;
test()方法
語法
RegExpObject.test(string)
參數 |
描述 |
string |
必需。要檢測的字符串。 |
列子
若是字符串 string 中含有與 RegExpObject 匹配的文本,則返回 true,不然返回 false
var s = new RegExp("bc");
document.write(s.test("abcdefg"));//true
document.write(s.test());//false
document.write("<br>----------------------");
var s2 = /\d+/;
document.write(s2.test("abcdef12"));//true
document.write(s2.test("abcdef"));//false
exec() 方法用於檢索字符串中的正則表達式的匹配。
若是字符串中有匹配的值返回該匹配值,不然返回 null。
語法
RegExpObject.exec(string)
var reg3 = new RegExp("b");
document.write(reg3.exec("abc"));//b
document.write(/hello/g.exec("hello chenrd"));//hello
document.write(/hello/g.exec(" chenrd"));//null
把正則表達式編譯爲內部格式,從而執行得更快。
rgExp
.compile(pattern, [flags])
參數
rgexp
必選項。正則表達式對象的一個例子。能夠是變量名或文字。
pattern
必選項。字符串表達式,它包含要被編譯的正則表達式模式。
flags
可選項。能夠組合使用,可用的標誌有:
說明
compile 方法把 pattern 轉換爲內部的格式,從而執行得更快。例如,這使得能夠在循環中更有效地使用正則表達式。當重複使用相同的表達式,那麼編譯過的正則表達式使執行加速。然而,若是正則表達式改變了,這種編譯毫無益處。
下面的例子舉例說明了 compile 方法的用法:
function CompileDemo(){
var rs;
var s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp"
只爲大寫字母建立正則表達式。 //
var r = new RegExp("[A-Z]", "g");
查找匹配。返回全部大寫的字母以逗號隔開 var a1 = s.match(r) //
只爲小寫字母編譯正則表達式。 //
r.compile(,) "[a-z]""g";
查找匹配。 var a2 = s.match(r) //
return(a1 + "\n" + a2;
}
Js中RegExp.$1是什麼意思
RegExp 是javascript中的一個內置對象。爲正則表達式。
RegExp.$1是RegExp的一個屬性,指的是與正則表達式匹配的第一個 子匹配(以括號爲標誌)字符串,以此類推,RegExp.$2,RegExp.$3,..RegExp.$99總共能夠有99個匹配
給你看了例子就知道了
var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正則表達式 匹配出生日期(簡單匹配)
r.exec('1985-10-15');
s1=RegExp.$1;
s2=RegExp.$2;
s3=RegExp.$3;
alert(s1+" "+s2+" "+s3)//結果爲1985 10 15