[英]Prevent 2 Consecutive numbers regular expression
我正在嘗試驗證 JavaScript 中的文本輸入,以防止出現 2 個連續數字。 前任:
name2aaa 接受
name22aa 不接受
我正在對文本輸入使用驗證。 這就是我的代碼,它已經包含防止@符號,我想將防止 2 個連續數字規則添加到同一個正則表達式
$('#storename').on('input', function () {
var c = this.selectionStart,
r = /[\\\@@]/g,
v = $(this).val();
if (r.test(v)) {
$(this).val(v.replace(r, ''));
c--;
}
this.setSelectionRange(c, c);
});
這可能是您需要的:
[\\@]|(\d)\d+
[\\@]
: \
或@
|
: 或者(\d)\d+
: 前面有 1 個或多個數字的數字,將第一個數字放在第 1 組中$1
假設您不希望用戶輸入另一個數字,如果它之前已經有一個數字。
當用戶嘗試鍵入42
時,它將4
存儲在組中,並將所有數字替換為該組。 在這種情況下, 42
-> 4
。 因此,用戶不能再連續鍵入超過 1 個數字。
$('#storename').on('input', function () { var c = this.selectionStart, r = /[\\@]|(\d)\d+/g, v = $(this).val(); if (r.test(v)) { $(this).val(v.replace(r, '$1')); c--; } this.setSelectionRange(c, c); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input id="storename" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.