3月13號筆記
阿新 • • 發佈:2022-03-16
EL表示式
在日常開發中,我們想要驗證一個字串是否符合我們的要求,用到正則表示式可以很方便的滿足我們的需求
例子:
js中
function priceReg (value){ value = value.replace(/[^\d.]/g,""); //清除“數字”和“.”以外的字元 value = value.replace(/^\./g,""); //驗證第一個字元是數字而不是. value = value.replace(/\.{2,}/g,"."); //只保留第一個. 清除多餘的. value = value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//去掉特殊符號¥ if(value.indexOf(".")>0){ value = value.substring(0,value.indexOf(".")+3); } return value; }
html中
<input type="text" name="phone" placeholder="請輸入賬號(手機號)" pattern="1\d{10}" title="請輸入11位數字的手機號">
那麼,正則表示式怎麼看呢?
首先要知道怎麼斷句
- 設我們要匹配的字元是o,o可以是'a','b','c','1','2','3'等等
- 字元後面如果跟著特殊字元,這些特殊字元看作和o一起
- ?表示出現了0次或1次,如:abc?de可以匹配abcde,也可以匹配abde
- *表示出現了0次或多次
- +表示出現了1次或多次
- {L,R}表示出現了[L,R]區間的任一次,特殊的,{L,}表示至少出現了L次
- []匹配一個字元,字元內容由[]裡面的內容決定,如[a-z]可以匹配a到z的任意”一個“字元。
- 特殊的,[]裡面以'^'開頭,表示匹配一個除了後面的字元之外的字元。
- 還有一些元字元,如'\d'表示0-9之間的數字,'\w'表示任意單詞(word),'.'表示任意字元
聯絡一下,
value = value.replace(/[^\d.]/g,"");
該怎麼斷句呢?
'/ /'裡面的內容是匹配的字元,g表示所有。可見匹配的是除了\d和.之外的任意一個字元。
pattern="1\d{10}"
該怎麼短句呢?
1匹配1,\d{10}匹配10個數字字元。