1. 程式人生 > >JavaScript-正則表示式

JavaScript-正則表示式

話題突然一指,什麼是正則表示式呢?為什麼咱們需要學習正則表示式的書寫呢?學習這個有什麼用,能幫助我們解決什麼問題?帶著疑問,咱們一塊來看看“正則表示式”;

什麼是正則表示式?

規定了一個字串中字元出現規律的規則。

為什麼需要學習正則表示式?

主要是當我們輸入的關鍵詞有多種變化的時候,(1)按照規則模糊查詢多種關鍵詞(2)用規則驗證使用者輸入的格式

正則表示式其實是由字符集和量詞,根據選擇和分組操作,設計出來的一種規則,然後發揮它的作用

那麼什麼是字符集呢?

字符集 What When 強調
標準符集 規定一位字元的規則 只要一位字元,但是有多個備選字時 一個字符集只能匹配一個字元
預定義字符集 簡化的幾種規則 不限 無 
  1. 標準字符集
    1. [0-9]、[a-z]、[A-Z]、[A-Za-z0-9]、[\u4e00-\u9fa5]
  2. 預定義字符集
\d \w \s .
[0-9] [A-Za-z0-9_] 空格、製表符 萬用字元(*和?)

那麼什麼是量詞呢?

上文中,我們明顯可以做到基本的限制規則,但是有些時候需要判斷我們輸入字符集的出現“次數”,那麼此時“量詞”就發揮作用了-規定了一個字符集出現次數的規則

量詞 字符集 描述 使用
有明確的邊界 {n,m}、{n,}、{n} 至少n個,最多m個;n個以上;必須是n個 字符集後面
沒有明確邊界 ?、*、+ {0,1}、{0,}、{1,} 字元及後面

既然已經學習了字符集和量詞,剩下的就是把他們拼裝到一快,然後發揮相應的作用?

  1. 分組
    1. 多個規則,相互之間劃分界限值,其實就是();
    2. 示例:
      1. 身份證號:\d{15}(\d\d[0-9Xx])?
      2. 自定義生日格式:(\d{4})(\d{2})(\d{2})
  2. 選擇
    1. 多個規則之間,優先順序劃分,其實就是|符號;
    2. 示例:
      1. 成都:(成|w(ei)?)\s*(都|x(in)?)

如此一來,我們便可以相互之間搭配,實現咱們想要的效果了,但是好像還有個問題?

  1. 問題:假如我們有些時候,僅僅想要篩選某一段字串之內的資料,那麼此時又該如何設定
  2. 四大常用符號
    1. ^ $ :表示從頭到尾完整匹配規則
    2. ^:表示字串開頭
    3. $:表示字串結尾
    4. \b:固定匹配完整的單詞,忽略空格、開頭、結尾、標點符號

學習和了解到這裡,我們還缺點什麼?-工具“RegexBuddy 3”

一款超級不錯的編寫和測試正則表示式工具,親測過,具體如圖表示