正則表達式(英語:Regular Expression,在代碼中常簡寫爲regex、regexp或RE)使用單個字符串來描述、匹配一系列符合某個句法規則的字符串搜索模式。搜索模式可用於文本搜索和文本替換。正則表達式
正則表達式是由一個字符序列造成的搜索模式。函數
當你在文本中搜索數據時,你能夠用搜索模式來描述你要查詢的內容。測試
正則表達式能夠是一個簡單的字符,或一個更復雜的模式。spa
正則表達式可用於全部文本搜索和文本替換的操做。code
靈活性、邏輯性和功能性很是的強;regexp
能夠迅速地用極簡單的方式達到字符串的複雜控制。對象
對於剛接觸的人來講,比較晦澀難懂。blog
-1 經過構造函數定義字符串
var 變量名= new RegExp(/表達式/); string
-2 經過直接量定義(較爲經常使用)
var 變量名= /表達式/;
console.log(regexp1.test(345));
console.log(/\d/.test(567));(直接使用)
-3 正則表達式的組成是:(總結)
有一些普通字符和元字符組成,普通字符就是字母和數字,元字符具備特殊意義的字符
-1 test() 方法
正則對象方法,檢測測試字符串是否符合該規則,返回true和false,參數(測試字符串)
使用語法:
Boolean = 表達式.test("要驗證的內容");
-1 預約義類
[^\n\r] 除了換行和回車以外的任意字符(「」不行)
\d [0-9] 數字字符
\D [^0-9] 非數字字符
\s [ \t\n\x0B\f\r] 空白字符
\S [^ \t\n\x0B\f\r] 非空白字符
\w [a-zA-Z_0-9] 單詞字符
\W [^a-zA-Z_0-9] 非單詞字符
-2 簡單類(正則://中什麼特殊符號都不寫,和[]的加入)
1、/string/.test(「string」); 必須是完整的,只多不能少
/andy/.test(「andy」) // true
/andy/.test(「andylv」) // true
/andy/.test(「an」) // false
一句話,只要完整包含了andy 就能夠了(有他就行)
2、/[string]/.test(「string」); 只要包含裏面的任何一個就能夠
/[andy]/.test("andy"); // true
/[andy]/.test("an"); // true
/[andy]/.test("ady"); // true
/[andy]/.test("anll"); // true
/[andy]/.test("assd"); // true
/[andy]/.test("ss"); // false
/[3aH8]/.test("ss"); // false
-3 負向類(不能是其中的總體或者一部分)
中括號內,前面加個元字符^進行取反,不是括號裏面的字符(一部分也不行)。
(能夠不夠,可是不能多)(不夠和正好,返回false;多了或者沒有返回true)
console.log(/[^abc]/.test('a'));
console.log(/[^abc]/.test('gg'));
注意: 這個符號 ^ 必定是寫到方括號裏面
-4 範圍類
有時匹配的東西過多,並且類型又相同,所有輸入太麻煩,咱們能夠在中間加了個橫線
console.log(/[a-z]/.test('1111'));
console.log(/[A-Z]/.test('aa'));
-5 組合類
用中括號匹配不一樣類型的單個字符。
console.log(/[a-m1-5]/.test("b"))//true
^ 會匹配行或者字符串的起始位置
注:^在[]中才表示非!這裏表示開始
$ 會匹配行或字符串的結尾位置
^$在一塊兒 表示必須是這個(精確匹配)
// 邊界能夠精確說明要什麼 console.log(/lily/.test("lilyname")); // true console.log(/^lily$/.test("lily")); // true console.log(/^lily$/.test("ly")); // false
console.log(/^andy$/.test("andy")); // true
這個的最終意思就是 說, 必須是 andy 這四個字母
(多個字母,重複最後一個)
* (貪婪) 重複零次或更多 (>=0)
+ (懶惰) 重複一次或更屢次 (>=1)
? (佔有) 重複零次或一次 (0||1) 要麼有 要麼沒有
{} 重複多少次的意思 能夠有多少個
您的銀行卡密碼只能是 6位 {6}
{n} n次 (x=n)
{n,} 重複n次或更多 (x>=n)
{n,m} 重複出現的次數比n多但比m少 (n<=x<=m)
* {0,}
+ {1,}
? {0,1}
x|y 一個 | x 或者 y(沒有&,用的是,代替的)
()提升權限,有限計算
replace() 方法用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。
語法格式:(返回值是新字符串)
須要匹配的對象.replace(正則式/字符串,替換的目標字符)
正則表達式的匹配模式支持的2個標誌
g:表示全局模式(global),即模式將被應用於全部字符串而非發現一個而中止
i:表示不區分大小寫(ease-insensitive)模式,在肯定匹配想時忽略模式與字符串的大小寫