關於正則表達式,你應該會用到的一些知識

說正則表達式之前,先來幾個常用的正則參考,方便大家使用的時候,直接拿去用,然後在開始講理論知識(嘖嘖嘖)


1: 輸入的數字值在 1-100之間,且包含1和100

number = /^(?:|[1-9][0-9]?|100)$/;
number = /^(\d{1,2}|100)$/;

2: 輸入的數字值在 0-1之間(如:0.45),且包含0和1

number = /^1$|^0(\.\d{1,})?$/;

3: 驗證身份證號

reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;

4: 驗證郵箱

email = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;

5: 驗證手機號碼

1:reg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
2:!(/^1[34578]\d{9}$/.test(需要驗證的手機號))

6: 驗證銀行卡號19位

cardNumber = /^(\d{19})$/;

7: 驗證1-6位小數

decimal = /^[0-9]+(.[0-9]{1,6})?$/;

8: 驗證英文

english = /^[A-Za-z]+$/;

9: 驗證數字,最多有兩個小數

number = /^[0-9]+(.[0-9]{1,2})?$/;

10: 驗證1-3小數

number = /^\d{1,3}$/;

11: 更改時間日期的顯示

var start_time = "2018-06-28T09:13:11";
正則方式:start_time.replace(/-/g, '.').substr(0, 10) + ' ' + start_time.replace(/:/g, '.').substr(11, 18)
執行結果:"2018.06.28 09.13.11"

微軟上關於正則表達式的一個說明文檔,講解的挺詳細的,可以參考下~

正則表達式示例

正則表達式 說明
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 匹配由兩位數字、一個連字符再加五位數字組成的 ID 號。
/<\s*(\S+)(\s[^>])?>[\s\S]<\s*\/\1\s*>/ 匹配 HTML 標記。

常用的元字符

代碼 說明
. 匹配除換行符以外的任意字符
\w 匹配字母或數字或下劃線或漢字
\d 匹配 數字
\b 匹配 單詞的開始或結束
^ 匹配 字符串的開始
$ 匹配 字符串的結束



【注】:

第一個例子:
    元字符^(和數字6在同一個鍵位的符號)和$都匹配一個位置,這和\b有點類似。^ 匹配你要用來查找的字符串的開頭,$匹配結尾。例如,驗證1-3小數,可以這樣寫
number = /^\d{1,3}$/;
第二個例子:
    \ba\w*\b匹配以字母a開頭的單詞——先是某個單詞開始處(\b),然後是字母a,然後是任意數量的字母或數字(\w*),最後是單詞結束處(\b)。
    \d+匹配1個或更多連續的數字。這裏的+是和*類似的元字符,不同的是*匹配重複任意次(可能是0次),而+則匹配重複1次或更多次。
    \b\w{6}\b 匹配剛好6個字符的單詞。
第三個例子:
    像[0-9]代表的含意與\d就是完全一致的:一位數字;同理[a-z0-9A-Z_]也完全等同於\w(如果只考慮英文的話)

對應上面表格中的常用元字符,你可以很直觀的看出這行正則是什麼意思,就瞬間明白了。

【重複】常用的限定符

代碼/語法 說明
* 重複零次或更多次
+ 重複一次或更多次
重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次

【反義】常見的反義代碼

代碼/語法 說明
\W 匹配任意不是字母,數字,下劃線,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數字的字符
\B 匹配不是單詞開頭或結束的位置
[^X] 匹配除了x以外的任意字符
^[aeiou] 匹配除了aeiou這幾個字母以外的任意字符


【例子】:

<a[^>]+>匹配用尖括號括起來的以a開頭的字符串



以上就是關於正則的一些基本的知識,日常小型開發需要用到的一些正則校驗。相信在你看了這篇文章之後,應該可以足夠應付了。但是還有很多沒有提到的東西。包含一些語法和簡單的說明。你可以在網上找到更詳細的參考資料來學習它們,前提是當你需要用到它們的時候。

這裏提供一個MDN的網站,關於正則基礎的講解。希望你能有所收穫~

MDN-正則表達式,可以系統的學習下正則的基礎知識~

發佈了31 篇原創文章 · 獲贊 48 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章