正則表達式,就是用某種模式去匹配一類字符串的公式。學習正則表達式就是學習怎樣定義一種“模式”的語法,說白了,就是學習各種匹配的規則,例如匹配數字要怎麼要怎麼寫,匹配字符怎麼寫等等。
正則表達式的定義共有2種方式:
(1)顯式定義;
(2)隱式定義;
舉例:
var myregex = new ReExp("[0-9]"); //顯式定義 var myregex = /[0-9]/; //隱式定義
test()方法返回一個boolean值。也就是說,test()方法檢查字符串str是否符合正則表達式模式rgexp,如果符合,則返回true;如果不符合,則返回false。
正則表達式常用的元字符如下:
在正則表達式中,匹配數字或者英文字母的書寫非常不方便。因此,正則表達式引入了連接符“-”來定義字符的范圍。
限定符,就是限定某個或某類字符出現的次數。
常用的正則表達式限定符如下:
在正則表達式中,定位符,說白了,就是限定某些字符出現的位置。
常用的正則表達式定位符如下:
我們都知道正則表達式包括2種字符:(1)普通字符;(2)特殊字符。如果我們要匹配正則表達式中的特殊字符,我們就必須在該特殊字符前面加上反斜槓“\”將其進行轉義。
舉例:
go\+
分析:
因為+是正則表達式的特殊符號,因此必須在+前面加上“\”對其進行轉義。
例如要匹配字面意義的“\”,就需要使用“\\”表示。
需要轉義的字符有:$、(、)、*、+、.、[、]、?、\、/、^、{、}、|。這些字符都不需要記憶,見得多就自然而然記住了。
分組又稱為子表達式,即把一個正則表達式的全部或部分分成一個或多個組。其中,分組使用的字符為“(”和“)”,即左圓括號和右圓括號。分組之後,用小括號括起來的表達式看出一個整體來處理。
選擇匹配符,很簡單。在正則表達式中,選擇匹配符是“|”,用於選擇匹配2個選項之中的任意一個,類似JavaScript中的“或”運算。
例如,“abc|def1”匹配的是“abc”或“def1”,而不是“abc1”或“def1”。如果要匹配“abc1”或“def1”,應該使用分組符,即“(abcd|efgh)1”。
語法:
(?#注釋的內容)
說明:
如果要在正則表達式中包含注釋,則最好打開“忽略模式裡的空白符”選項。因此,此時可以在注釋中添加空格、換行符號、制表符號等。一旦啟用了該選項,即符號#之後的內容會全部被忽略掉。
這種注釋方式暫時並未被JavaScript支持,但是其他高級語言可能使用到。對於學習前端的同學,可以忽略這個知識點。
上面優先級是從高到低排列。這些優先級順序並不需要刻意去記憶,平常用得到了,自然而然就知道。
至此,正則表達式基礎部分已經給大家分享完了。不過,對於正則的學習未完待續,過一段時間,等站長編寫完了再給大家更新正則表達式進階部分和應用部分,詳細為大家介紹正則表達式進階技巧和前端中的表單驗證等各種技巧。