簡體   English   中英

使用 JavaScript 正則表達式在文本框中只允許正數和負數

[英]Allow only positive and negative numbers in textbox using JavaScript regex

我有一個名為 count 的文本框。 我想使用 JavaScript 或 jQuery 正則表達式在文本框中只輸入正數和負數。 文本框中不允許出現“文本”、“小數”和“特殊字符”。 即使復制和粘貼也應該只取正數或負數。

重要的:

  1. 如果我復制並粘貼文本或小數點或特殊字符,也不應采用。 它應該只取正數或負數。

  2. 我想輸入和粘貼沒有小數的負值。

  3. 箭頭鍵應該可以工作。

  4. ShiftCtrlHomeEndEnter像這樣的按鈕也應該工作。

請檢查以下小提琴並修改它。

小提琴

 $(".allownumericwithoutdecimal").on("keypress keyup blur",function (event) { $(this).val($(this).val().replace(/[^\\d].+/, "")); if ((event.which < 48 || event.which > 57)) { event.preventDefault(); } });
 <span>Int</span> <input type="text" name="numeric" class='allownumericwithoutdecimal'> <div>Numeric values only allowed (Without Decimal Point) </div>

我是正則表達式的新手。 請幫我做這件事。

您正在尋找的正則表達式是這樣的:

正則表達式: ^-?[0-9]+$

解釋:

  • 它檢查可選的- ve 符號。 並且只允許數字。

  • 我使用了[0-9]而不是\\d因為后來的一個表示不同語言中的數字。

Regex101 演示

PS:我不是 Javascript 程序員,所以如果有人想添加小提琴或使用這個正則表達式,請繼續。

這也可以在沒有正則表達式的情況下使用 Javascript keypress 和 charCode 實現。

<input type="number" (keypress)="keypress($event, $event.target.value)" >

keypress(evt, value){

    if (evt.charCode >= 48 && evt.charCode <= 57 || (value=="" && evt.charCode == 45))       
    {  
        return true;
    }
    return false;
}

給定的代碼不允許用戶在運行時輸入字母或小數,只能輸入正整數和負整數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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