jQuery Regex限制用户输入整数和浮点数值



我有两个文本框(输入字段),如以下内容:

 <input type="text" class="txtmin" placeholder="Minimum price">
            <input type="text" class="txtmax" placeholder="Maximum price">

我正在尝试这样的方法来防止用户输入以下值:

  1. 如果用户在这两个值中没有输入任何内容,他可以继续。

  2. 如果用户将某些内容输入txtmin Textbox,但没有在TXT Max中输入任何内容,则只能验证txtmin

  3. 喜欢2,但VICE反之亦然

  4. 2和3验证以下验证:

    • 如果用户除了整数号或浮点数号以外输入任何内容,则显示错误。

所以例如,当我输入:1或2.50或1.00时,这没关系...

不允许有逗号的数字。

所以我尝试了以下内容:

$(".btnGo").click(function () {
             var r = new RegExp("/^[+-]?d+(.d+)?$/");
             var min = $('.txtmin').val();
             var max =$('.txtmax').val(); 
            if ($('.txtSearch').val() == "") {
                ShowMessage("All fields are required");
                return;
            } else if ($('.txtmin').val() != "") {
                if (!r.test(min)) {
                    ShowMessage("Entry only number for minimum price!");
                    return;
                }
            }
            else {
                PostAndUpdate($('.txtSearch').val(), $('input[name=type]:checked').val(), $('input[name=shipping]:checked').val(), $('input[name=condition]:checked').val(), $('.txtmin').val(), $('.txtmax').val());
            }
        });

但是,例如,当我不离开离开txtmin值时,我会输入:

1.25&lt;&lt;&lt;

我仍然出于某种原因而遇到错误???

Entry only number for minimum price

我在这里做错了什么?

将报价从您的正时

var r = new RegExp(/^[+-]?d+(.d+)?$/);

随访:您可以声明由/.../划定的正则划分或引号,但不能同时划分。如果使用引号,则需要遵循正常的JavaScript逃生规则并使用双重斜线。如果使用SLASH划定,则也不需要使用new RegExp。这些都是有效和等效的。

var r = new RegExp(/^[+-]?d+(.d+)?$/);
var r = new RegExp("^[+-]?\d+(\.\d+)?$");
var r = /^[+-]?d+(.d+)?$/;

,不,这将不允许使用逗号的数字。

最新更新