簡體   English   中英

防止2個連續數字正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM