關於 Reg Ex 正規表達式

關於 Reg Ex 正規表達式

 

正規表達式筆記

正規表達式所使用的符號

正規表達式是指一組能夠用來表達字串共用格式的樣式,只要是字串比對與字串取代等字串相關功能,都會用到正規表達式

語法 正規表達式 範例 
整數 [0-9]+   5815
浮點數 [0-9]+.[0-9]+ 58.15
純英文字串 [A-Za-z]+ CGuIM
Email [a-zA-Z0-9]+@[a-zA-Z0-9.]+ im@mail.cgu.edu.tw
URL http://[a-zA-Z0-9./_]+ http://www.is.cgu.edu.tw/
以任一順序對括號中的字元與字串 [abc] a、ab、abc、cba、ca ...
數量標示  {} 表示數值出現的次數
  {10} 代表10個
  {10,}  10個以上
  {1,5} 1到5個
縮寫 \w  [a-zA-Z]
  \d [0-9]
比對結尾與符號鄰接字元一致的字串  ap$ le'ap'   //無法完全比對,只會比對 ap   

正規表達式範例

  • 手機號碼: 開頭到結尾都必須是數字。不得有連字符號
    • ^\d{10}$
  • 郵局區號 5 碼數字
    • ^[1-9]\d{4}$
  • 身分證字號:一碼英文大寫搭配9碼數字
    • ^[A-Z]\d{9}$
  • 西元出生年月日: 以1901/2/28表示
    • ^\d{4}/\d{1,2}/\d{1,2}

Vue Cli 範例

簡易測試是否輸入正確
<template lang="pug">
 .home 
  div
   label 請輸入您的身分證字號 &nbsp;
   input(v-model="userName")
   p {{userName}}
   p {{errMsg}}
</template>
<script>
export default {
  name: "Home",
  data() {
    return {
      userName: 123,
      errMsg:''
    };
  },
  watch: {
    userName: function(value) {
      if (this._valid(value)) {
        this.errMsg = "正確地輸入身分證字號";
      } else {
        this.errMsg = "錯誤";
      }
    }
  },
  methods: {
    _valid(name) {
      return /^[A-Z]\d{9}$/.test(name);
    }
  }
};
</script>

參考資料

 

  1. 正規表達式符號速查表
  2. Regular Expression (regex),要成為GA專家一定要懂的正規表示式