我有一個正則表達式,我正在使用autoformat文本框中的日期字段。我正在替換用戶嘗試輸入空字符串的每個非數字值。我如何限制他們輸入非數字字符BESIDES斜槓字符(/)?正則表達式:匹配一個非數字字符BESIDES某個字符
即用戶應當能夠在任何數字和斜線輸入/
var val = this.value.replace(/\D/g, '');
val = val.replace(/^([\d]{2})([\d]{2})([\d]{4})$/, "$1/$2/$3");
我有一個正則表達式,我正在使用autoformat文本框中的日期字段。我正在替換用戶嘗試輸入空字符串的每個非數字值。我如何限制他們輸入非數字字符BESIDES斜槓字符(/)?正則表達式:匹配一個非數字字符BESIDES某個字符
即用戶應當能夠在任何數字和斜線輸入/
var val = this.value.replace(/\D/g, '');
val = val.replace(/^([\d]{2})([\d]{2})([\d]{4})$/, "$1/$2/$3");
你可以用一個否定的正則表達式字符類是這樣的:
[^\d\/]
用代碼引用你的代碼:
var val = this.value.replace(/[^\d\/]/g, '');
^^^^^^^ ---- Replace everything but digits and/
難道你不是指'[^ \ d \ /]' –
@ N.Leavy完全是大聲笑。感謝您指出這一點。頭暈目眩,否定非數字大聲笑 –
如果您要更換的一切,但一個數字[0-9]
或斜線[\/]
那麼應該使用類似[^0-9\/]
或者如果你喜歡[^\d\/]
'/ ^([\ d {2})\ /?([ \ d] {2})\ /?([\ d] {4})$ /'? – andlrc