16、JavaScript-正規表示式

weixin_33751566發表於2017-05-18

每天一句:夢想不是掛在嘴邊炫耀的空氣,而是需要認真的實踐,等到對的風,我們展翅翱翔;沒有風,只要擁有足夠強壯的翅膀,我們照樣拔地飛行,天空見面。

一、正規表示式基礎1

  • 複習字串操作
    search 查詢
    substring 獲取子字串
    charAt 獲取某個字元
    split 分割字串,獲取陣列

  • 找出字串中所有數字
    1、用傳統字串操作完成
    2、用正規表示式完成

二、正規表示式基礎2

  • 什麼是正規表示式
    1、什麼叫"正則" --> 規則、模式
    2、強大的字串匹配工具
    3、是一種正常人很難讀懂的文字

  • 正規表示式(RegExp)
    1、js風格 —> new RegExp("a", "b")
    2、perl風格 —> /a/i

  // 引數1: 檢測字串是否包含'a'
  // 引數2: 'i'表示忽略大小寫
  var re = new RegExp('a');
  var re = new RegExp('a','i');

  // 簡寫
  var re = /a/;
  var re = /a/i;

三、字串與正則配合

  • search(搜尋) 字串搜尋
    1、返回出現的位置(不存在返回-1)
    2、忽略大小寫: i (ignore)
    3、判斷瀏覽器型別

  • match(匹配) 獲取匹配的專案
    1、量詞: + (表多個)
    2、量詞變化: \d、\d\d、\d+
    3、全域性匹配: g (global)
    (例如: 找出所有數字)

  • replace(替換) 替換所有匹配
    1、返回替換後的字串
    (例如: 敏感詞過濾)

四、字元類

【在方括號中的,都是單個字元的,不管是裡面是什麼】

  • 任意字元 [abc]
    例如: o[abc] —> oa/ob/oc

  • 範圍 [a-z]、[0-9]
    例如: 班級[0-9] —> 班級1/班級2..班級9

  • 排除 [^a] (除了a以外的都可以)
    例如: ab[^0-9] — abd/ab?/ab …

  • 組合 [a-z0-9A-Z] (字母和數字)

  • 轉義字元
    1、 .(點) —> 表示任意字元
    ' . ' 點表示所有字元
    ' .+ ' 表示許多個任意字元
    2、\d —> 表示[0-9],即數字
    3、\D —> 表示[^0-9],即除了數字
    4、\w —> 表示[a-zA-Z0-9_],即數字字母下劃線
    5、\W —> 表示[^a-zA-Z0-9_],即除了數字字母下劃線
    6、\s —> 表示空白空格製表符
    7、\S —> 除了空格以外的
    【如果就是需要輸入點這個字元,請進行轉義 “.” 】

案例: 將小說轉換過來

 rel = /<[^<>]+>/g;     str.replace(rel, ‘’);

五、量詞

  • 什麼是量詞
    1、出現的次數
    2、{n,m}至少出現n次,最多m次
    例如: 查詢QQ號

  • 常用量詞
    1、{n,} 至少n次
    2、* 任意次(可以出現也可以不出現,不建議使用 {0,}
    3、? 零次或一次 {0,1}
    4、+ 一次或任意次 {1,}
    5、{n} 正好n次

六、高階表單校驗

  • 校驗郵箱
    1、行首行尾 (^行首,$行尾,一般的校驗都需要加上這,避免只有一部分符合規則)
/^\w+@[0-9a-z]+\.[a-z]{2,4}$/

2、去掉空格

 ^\s*|\s*$
  • 匹配中文: [\u4e00-\u9fa5]

相關文章