【问题标题】:Allow only positive and negative numbers in textbox using JavaScript regex使用 JavaScript 正则表达式在文本框中只允许正数和负数
【发布时间】:2016-03-11 12:33:00
【问题描述】:

我有一个名为 count 的文本框。我只想使用 JavaScript 或 jQuery 正则表达式在文本框中输入正数和负数。不允许在文本框中出现“文本”、“小数”和“特殊字符”。即使复制和粘贴也应该只取正数或负数。

重要:

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

  2. 我想输入和粘贴不带小数的负值。

  3. 方向键应该可以工作。

  4. Shift, Ctrl, Home, End, Enter像这样的按钮也应该可以工作。

请检查以下小提琴并请修改它。

Fiddle

 $(".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>  

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

【问题讨论】:

  • 正数是否允许使用+ 符号?
  • 不需要。仅需要“-”符号。
  • 和“-”符号应该在开头只出现一次。不超过一个。
  • 代码没有按预期工作

标签: javascript jquery html regex


【解决方案1】:

您正在寻找的正则表达式是这样的:

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

说明:

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

  • 我使用了[0-9] 而不是\d,因为后面的一个表示不同语言的数字。

Regex101 Demo

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

【讨论】:

  • 对不起菜鸟。请参阅我所提到的观点。即使复制粘贴也不应该采取。并且应该允许箭头键。你能在jsfiddle中添加这个例子吗?
  • @sathishkumar:是的,这不是完整的解决方案。这只是正则表达式部分。祝你小提琴好运,因为我不是 Javascript 程序员。
  • 这个正则表达式非常适合用于blur 事件,作为最终验证。实际上,正则表达式在这里是基本的,问题在于代码。请参阅 my fiddle 改编自我以前的帖子。不知道它是否按您需要的方式工作。
  • @WiktorStribiżew:谢谢。我认为你的小提琴是OP所需要的。您应该将其发布为答案。
  • @noob:不,我不认为它运作良好。我无法将12345 粘贴到字段中。
【解决方案2】:

这也可以在不使用 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;
}

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

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    相关资源
    最近更新 更多