使用JavaScript正则表达式仅允许文本框中的正数和负数

时间:2016-03-11 12:33:00

标签: javascript jquery html regex

我有一个名为count的文本框。我想使用JavaScript或jQuery正则表达式在文本框中仅输入正数和负数。不要允许"文字"和"小数"和#34;特殊字符"在文本框中。即使是复制和粘贴,也只能采用正数或负数。

重要提示:

  1. 如果我复制并粘贴文本或小数或特殊字符也不应该。它应该只采取正数或负数。

  2. 我想输入并粘贴没有小数的负值。

  3. 箭头键应该有效。

  4. Shift Ctrl Home End Enter 像这样的按钮也应该有效。

  5. 请检查以下小提琴,请修改此内容。

    Fiddle

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

    我是正则表达式的新手。请帮我做这件事。

2 个答案:

答案 0 :(得分:1)

你正在寻找的正则表达式是:

正则表达式: ^-?[0-9]+$

<强>解释

  • 它会检查可选的-符号。并且只允许数字。

  • 我使用了[0-9]而不是\d,因为后来的意思是不同语言的数字。

Regex101 Demo

PS:我不是Javascript程序员,所以如果有人想添加小提琴或使用此正则表达式,请继续。

答案 1 :(得分:1)

使用Javascript按键和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;
}

给定的代码不允许用户在运行时输入字母或小数,只能输入正整数和负整数。