正则表达式只允许正整数并检查jQuery

时间:2017-01-20 12:12:57

标签: javascript jquery html regex validation

我的HTML中有两个输入字段:

<input type="text" class="txtminFeedback" pattern="^\d+([\.\,][0]{2})?$" placeholder="Minimum Feedback">

<input type="text" class="txtmaxFeedback" pattern="^\d+([\.\,][0]{2})?$" placeholder="Maximum Feedback">

我尝试过以下几种正则表达式:

^\d+([\.\,][0]{2})?$

or

(^[0-9]+$|^$)

or

/^\d*$/

这些都不能用jQuery中的以下代码工作:

if ($('.txtminFeedback').val() == "" && $('.txtmaxFeedback').val() == "") {
    if ($('.txtmin')[0].checkValidity() && $('.txtmax')[0].checkValidity()) {
        if ($('.txtSearch').val() == "") {
            ShowMessage("Please enter the search term!");
            return;
        }
        else {
            PostAndUpdate($('.txtSearch').val(), $('input[name=type]:checked').val(), $('input[name=shipping]:checked').val(), $('input[name=condition]:checked').val(), $('.txtmin').val(), $('.txtmax').val(), $('.txtNegativeKeywords').val(), $('.txtminFeedback').val(), $('.txtmaxFeedback').val());
        }
    } else {
        ShowMessage("You have entered incorrect value for minimum or maximum price!");
        return;
    }
} else if (!$('.txtminFeedback')[0].checkValidity() || !$('.txtmaxFeedback')[0].checkValidity())
{
    ShowMessage("Please enter only positive value for minimum and maximum feedback.");
    return;
}

如果他愿意,用户可以将txtminfeedback和txtmaxfeedback留空。但是,如果他决定输入一些值,则必须输入两个字段,并且只需输入整数正数(从0到4百万)。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

最后这样做了:

 pattern="^(\s*|\d+)$"


 if ($('.txtminFeedback')[0].checkValidity()==false || $('.txtmaxFeedback')[0].checkValidity()==false) {
                ShowMessage("Please enter only positive value for minimum and maximum feedback.");
                return;
            }
            if ($('.txtmin')[0].checkValidity() && $('.txtmax')[0].checkValidity()) {
                if ($('.txtSearch').val() == "") {
                    ShowMessage("Please enter the search term!");
                    return;
                }
                else {
                    PostAndUpdate($('.txtSearch').val(), $('input[name=type]:checked').val(), $('input[name=shipping]:checked').val(), $('input[name=condition]:checked').val(), $('.txtmin').val(), $('.txtmax').val(), $('.txtNegativeKeywords').val(), $('.txtminFeedback').val(), $('.txtmaxFeedback').val());
                }
            } else {
                ShowMessage("You have entered incorrect value for minimum or maximum price!");
                return;
            }

以防万一将来可能需要它。

干杯=)