一、回顧知識:
. |
點字符匹配除回車(\r)、換行(\n)、行分隔符(\u2028)和分段符(\u2029)之外的所有字符 注:碼點大於0xFFFF的Unicode字符不能被匹配,因爲會被認爲是兩個字符。 |
\w | 匹配字母或數字或下劃線或漢字 |
\s | 匹配任意的空白符 |
\d | 匹配數字 |
\b | 匹配單詞的開始或結束 |
^ | 匹配字符串的開始 |
$ | 匹配字符串的結束 |
| |
豎線符號在正則中表示 ‘或關係’ , 即匹配其中之一即可 |
/a/ | 字面量字符,匹配a,其中a可以換成其他的 |
\ | 將下一個字符標記符、或一個向後引用、或一個八進制轉義符。例如,“\\n”匹配\n。“\n”匹配換行符。序列“\\”匹配“\”而“\(”則匹配“(”。即相當於多種編程語言中都有的“轉義字符”的概念。 |
* | |
* |
匹配前面的子表達式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等價於{0,}。 |
二、應用實踐
1、最新手機號正則匹配:
正則:
/^1(3|4|5|6|7|8|9)\d{9}$/
解釋:最新手機號段:以1開頭,第二位是3~9中的任意一位,後面跟9位
示例:
getlength(e) {
let _this = this;
if (e.mp.detail.value.length != 11) {
_this.$showToast("請輸入11位手機號", "none");
return false;
} else {
let reg = /^1(3|4|5|6|7|8|9)\d{9}$/;//最新手機號段:以1開頭,第二位是3~9中的任意一位,後面跟9位
if (reg.test(_this.dataForm.oldMobile) || reg.test(_this.dataForm.newMobile) || reg.test(_this.dataForm.repeatMobile)) {
_this.$showToast("輸入的手機號格式有誤", "none");
return false
} else {
return true;
}
}
},
2、最新18位身份證號碼
正則:
/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/
測試:在線測試正則工具