2015-12-18 55 views
0

我有一個正則表達式,我正在使用autoformat文本框中的日期字段。我正在替換用戶嘗試輸入空字符串的每個非數字值。我如何限制他們輸入非數字字符BESIDES斜槓字符(/)?正則表達式:匹配一個非數字字符BESIDES某個字符

即用戶應當能夠在任何數字和斜線輸入/

var val = this.value.replace(/\D/g, ''); 
val = val.replace(/^([\d]{2})([\d]{2})([\d]{4})$/, "$1/$2/$3"); 
+0

'/ ^([\ d {2})\ /?([ \ d] {2})\ /?([\ d] {4})$ /'? – andlrc

回答

1

你可以用一個否定的正則表達式字符類是這樣的:

[^\d\/] 

Working demo

用代碼引用你的代碼:

var val = this.value.replace(/[^\d\/]/g, ''); 
           ^^^^^^^ ---- Replace everything but digits and/
+2

難道你不是指'[^ \ d \ /]' –

+0

@ N.Leavy完全是大聲笑。感謝您指出這一點。頭暈目眩,否定非數字大聲笑 –

1

如果您要更換的一切,但一個數字[0-9]或斜線[\/]那麼應該使用類似[^0-9\/]或者如果你喜歡[^\d\/]

相關問題