前言:先來了解一下基礎知識。再細說正則表達式~
轉義字符 ---- \
轉義字符會將與之相鄰的字符轉換含義。
例如說,希望在一個字符串中輸出 “ 號,那么就可以使用在雙引號前加入 \ ,這樣就能將雙引號輸出。
通常情況下,我們會用到這樣幾個轉義字符
\n 字符串換行符, \r 代表文本行結束, 回車用轉義字符表示就是 \r\t ,\t 代表制表符,是 tabel 縮寫。
正則表達式-------創建
首先說作用: 是匹配特殊字符或有特殊搭配原則的字符的最佳選擇。
接着來看下如何使用正則表達式,它有幾種創建方式,我們一一來看下。
1. 直接量的方式創建
var reg = /abc/; // 這里規定了表達式的格式, /abc/i 表示可以忽略大小寫 var str = 'abc'; reg.test(str); // true
2. 構造函數的方式創建
var reg = new RegExp("abc","m"); //第一個參數寫規則,第二個是可選項,傳入可以是任一屬性 i m g,也可以自由組合 var str = "abcd"; // true
3. 構造函數方式創建的另一種表達(加 new 、不加 new)
var reg = /abc/i; var reg1 = new RegExp(reg); //此時是利用原有的模式創建了一個新的正則表達式,雖然相同但完全獨立。 var reg = /abc/i; var reg1 = RegExp(reg); // 如果不加 new,則返回的只是這個原有澤政表達式的一個引用,並不會創建新的正則表達式。
正則表達式-------修飾符(i、g、m)
var reg = /abc/i; // 忽略大小寫 var str = "ABC" // true var reg = /abc/g; // 進行全局匹配 var str2 = "abcabcabcabc" // ['abc','abc','abc','abc'] 不加 g 時,數組中只會出現一個字符串 var reg = /abc/m; // 進行多行匹配 // 下面是一些偽代碼 if var reg = /^a/g; // 表示匹配以a開頭的所有字符 var str = "abc/na"; // ['a'] 雖然換行了,但是修飾符 g 並不認為這是另起一行了,依然不會識別。 if var reg = /^a/gm; // 表示匹配以a開頭的所有字符 var str = "abc/na"; // ['a','a'] 這時就會認識這是一個換行符了,就能進行匹配
正則表達式-------表達式
表達式中的標准可以是多個表達式,這是規定了每一位上的匹配區間
[abc] : 查找方括號之間的任意字符
[^abc] : 查找不在方括號之間的任意字符
[0-9] : 查找0-9之間的任意數字
一種偷懶的寫法: [0-9a-Z] : 這里包括了0-9a-Z的所有區間
關於 ^ ,在表達式中表示非,在表達式外表示從哪里開始。
(abc | bcd) : 這里也是表示匹配區間,但必須是abc 或者 bcd
正則表達式-------元字符
. : 匹配除了換行符以外的所有字符
\w :匹配所有的單詞字符以及下划線
\W : 與\w正好取反
\s = (\v \r \f \n \t 空格): 匹配空白字符
\v \r \f \n \t : 這里需要注意,使用這些匹配元字符的時候,必須是字符串中真實存在的,不能視覺上存在的。
等等......
表達式中也可以寫元字符拼接
正則表達式-------量詞
n+ : 表示n可以匹配一次到多次
n* : 表示n可以匹配0次到多次
n? : 表示n可以匹配0次或一次