在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ 用正則表達(dá)式匹配每輸入兩個十六位進制加一個橫杠'-',能同時也可以粘貼實現(xiàn)匹配?

用正則表達(dá)式匹配每輸入兩個十六位進制加一個橫杠'-',能同時也可以粘貼實現(xiàn)匹配?

我寫了一個正則表達(dá)式

 this.value.replace(/\s/g, '').replace(/\W/g, '').replace(/[^0-9a-fA-F]/g, '').replace(/([a-f0-9]{2})(?=[a-f0-9])/g, "$1" + "-");

實現(xiàn)了每輸入兩個十六進制字符后加一個"-",如圖1圖片描述

正常輸入沒問題,但是要是從txt文本中復(fù)制這串字符粘貼進input框,就會出現(xiàn)圖2的錯誤圖片描述

請教各位大神怎么解決粘貼時出現(xiàn)的問題

回答
編輯回答
未命名

這個應(yīng)該不是你粘貼的問題,應(yīng)該是你正則匹配的問題
你可以在console執(zhí)行下這段代碼

'12-34EDF5-67-A8'.replace(/\s/g,'').replace(/\W/g,'').replace(/[^0-9a-fA-F]/g,'').replace(/([a-f0-9]{2})(?=[a-f0-9])/g,'$1'+'-');

你會發(fā)現(xiàn)結(jié)果就是12-34EDF56-7A8,因為你正則中只匹配了小寫a-f,沒有匹配大寫的A-F,所以并沒有達(dá)到你想要的目的,你可以在最后一次替換中忽略大小寫去匹配就可以了

replace(/([a-f0-9]{2})(?=[a-f0-9])/ig,'$1'+'-')
2017年2月13日 23:31