我使用鍵上的事件創建函式以使用正則運算式將“/”放入輸入用戶的值中,但仍然存在錯誤,有人可以幫助我嗎?
$('#validUntil').on('keyup', function(e){
$(this).val(function(index, value) {
return value
// Add "/" separators:
.replace(/\B(?=(\d{2}) (?!\d))/g, "/")
});
});
例如,如果我輸入 5121,結果必須是 51/21。問題是結果不匹配,顯示的結果是:5/1/21
uj5u.com熱心網友回復:
歡迎使用堆疊溢位。考慮以下。
$(function() {
$('#validUntil').on('keyup', function(e) {
var val = $(this).val();
if (val.length > 3) {
$(this).val(val.replace(/\B(?=(\d{2}) (?!\d))/g, "/"));
}
return true;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="validUntil" />
我懷疑主要問題是評估每個keyup事件的價值。
添加條件以確保適當的長度將有助于確保正則運算式在需要時起作用。
現在,如果用戶進入,512111您將遇到類似的問題。因此,如果/檢測到,則將其洗掉,然后應用正則運算式替換。
uj5u.com熱心網友回復:
每次其值更新時,您都會在輸入的最后兩個數字之前添加一個斜杠。
所以當你打字時:
5 => 5
5 1 => 51 =>51
51 2 => 512 =>5/12
5/12 1=> 5/121=>5/1/21
插入斜線時,請確保洗掉之前插入的斜線:
return value.replaceAll('/', '')
.replace(/\B(?=(\d{2}) (?!\d))/g, "/")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397848.html
標籤:javascript 查询
上一篇:無法獲取graphql服務器
