1. 程式人生 > 其它 >3月13號筆記

3月13號筆記

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個數字字元。