验证 jQuery 中带有一个小数位的负数

validate negative number in jquery with one decimal place

本文关键字:小数 有一个 jQuery 验证      更新时间:2023-09-26

我想通过以下方式使用 jauery 验证文本字段:

1.文本字段仅取0-9,只有一位小数;以及

2.如果输入的金额不是负数,请将负号放在 乞求输入的数字!

$('[name="pm"]').keyup(function() {
    //?
 });

您可以通过正则表达式验证字符串并String#match

if (this.value.match(/^-?'d+(?:'.'d){0,1}$/)) {
    // It's valid
}

或者更jQuery-ish(上面不支持textarea可靠,只是input):

if ($(this).val().match(/^-?'d+(?:'.'d){0,1}$/)) {
    // It's valid
}

(例如,this.value => $(this).val() .)

分解正则表达式:

  • ^ - 匹配字符串的开头
  • -? - 单个可选-字符
  • 'd+ - 一个或多个数字 (0-9)
  • (?:...) - 非捕获分组,包含:
    • '.'d - 最多一个.后跟一位数字
  • {0,1} - 允许非捕获分组零次或一次
  • $ - 匹配字符串的结尾

请注意,上述内容拒绝-.1 。如果你想接受它,它会变得更复杂,但上面的链接应该会有所帮助。

无偿现场示例 | 来源

试试这段代码。

$('[name="pm"]').keyup(function() {   if($(this).val().indexOf('-') != 0){      var val = $(this).val();      $(this).val("-" + val);   }});

如果它不起作用,请将其替换为 $('[name="pm"]')

指定解决方案的排列和添加:

从@Some_Coder答案

1)首先这样做

http://www.texotela.co.uk/code/jquery/numeric/

来自游戏制作者回答与修改

$('[name="pm"]').keyup(function() {   if($(this).val().indexOf('-') != 0){      var val = $(this).val();      $(this).val("-" + val);   }if ($(this).val() == '-') {            $(this).val('');        }});

你会得到想要的结果!

如果你使用jQuery,那么你可以使用这个插件。

http://www.texotela.co.uk/code/jquery/numeric/

相关文章: