回答
此問題的最佳解決方案是在驗證之前檢查文本框的值> 0。這將有助於解決在空白文本框中按退格時顯示的錯誤。
您可以使用[\b]
來匹配退格。所以,僅僅把它添加到你的性格類: -
var numericReg = /^[a-zA-Z0-9._\b]+$/;
請注意,您不需要在字符類逃脫dot (.)
。那裏沒有特別的意義。
參見: -
更多轉義序列,和模式的正則表達式。
@TimPietzcker ..我沒有測試它,但它應該工作。在那個頁面中,它在桌子的某個地方被提到。請再看看。它說: - '[\ b]'匹配反斜槓。 –
對。找到了。 –
@RohitJain **它說: - [\ b],匹配反斜槓。**你的意思是退格,對嗎? –
我建議你重寫你的正則表達式:
var numericReg = /^[a-zA-Z0-9._]+|[\b]+$/
或者:
var numericReg = /^(?:[a-zA-Z0-9._]|[\b])+$/
對證 'event.keyCode' 和檢查正則表達式之前 'value.length'。
密鑰號碼8 =反斜槓
$('#my-input').on('keypress change', function(event) {
// the value length without whitespaces:
var value_length = $(this).val().trim().length;
// check against minimum length and backspace
if (value_length > 1 && event.keyCode != 8) {
var regex = new RegExp('/^[a-zA-Z0-9\._]+$/');
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
}
}
我還提出,僅接受號碼(非十進制)和退格鍵盤輸入文本類型。我注意到,在非Firefox瀏覽器中不需要在正則表達式中放置[\ b]。
var regExpr = new RegExp("^[0-9,\b][0-9,\b]*$");
- 1. 正則表達式不允許空格
- 2. 允許正則表達式
- 3. 正則表達式允許負值
- 4. 正則表達式 - 不允許像「U12345」
- 5. 正則表達式,僅允許數字
- 6. 正則表達式來允許子域
- 7. 正則表達式不允許負數
- 8. 正則表達式,允許數
- 9. 正則表達式只允許字符
- 10. 正則表達式只允許負數
- 11. 正則表達式不允許零
- 12. 正則表達式允許100和999999
- 13. 允許串僅在正則表達式
- 14. 正則表達式只允許在
- 15. 這個正則表達式允許「*」嗎?
- 16. 允許使用正則表達式
- 17. 正則表達式 - 匹配後只允許空格或空格
- 18. 正則表達式允許空格和完整的空格
- 19. XML模式正則表達式不允許單獨空格
- 20. 正則表達式只允許這種格式123-456-7890
- 21. 正則表達式,只允許specfic格式。 「John-doe」
- 22. 正則表達式幫助 - 需要允許%正則表達式公式
- 23. 正則表達式是不允許「並允許\」
- 24. 正則表達式,它只允許沒有口音的字母
- 25. 正則表達式,它允許方括號
- 26. javascript正則表達式不允許我的表達式
- 27. 尋找正則表達式來允許空格但不允許特殊字符?
- 28. 允許數字和空格的字段的正則表達式
- 29. 如何在此正則表達式中允許空格?
- 30. XRegExp正則表達式允許字符間單個空格
在正則表達式中有* backspace *的意義是什麼?那麼*刪除*然後呢?我想你的問題可以用不同的方式解決,如果你告訴更多的話。 – VisioN
問題是當我在一個空的文本框中按退格正則表達式驗證它並拋出錯誤 – Amith