Regex(用于jQuery)验证带2个小数点的正数
我需要使用jQuery将一个字段与正则表达式匹配。目前我正在使用:Regex(用于jQuery)验证带2个小数点的正数,jquery,regex,validation,match,Jquery,Regex,Validation,Match,我需要使用jQuery将一个字段与正则表达式匹配。目前我正在使用: onsubmit: function (settings, td) { //select integers only var intRegex = /[0-9 -()+]+$/; var input = $(td).find('input'); var original = input.val(); if
onsubmit: function (settings, td) {
//select integers only
var intRegex = /[0-9 -()+]+$/;
var input = $(td).find('input');
var original = input.val();
if (original <= 0) {
Alert('The amount should be bigger than 0');
return false;
}
if (!original.match(intRegex)) {
Alert('Please enter a valid number');
return false;
}
else {
return true;
}
}
on提交:功能(设置,td){
//仅选择整数
var intRegex=/[0-9-()+]+$/;
var input=$(td.find('input');
var original=input.val();
如果(原始使用:
这应该行得通。以下是原始正则表达式出现误报的原因:
var regxp = /^\d+(\.\d{1,2})?$/;
/[0-9 -()+]+$/
^^^
带下划线的第一部分构成了从空格字符(U+0020
)到左括号(U+0028
)的范围,使正则表达式等效于:
/[0-9 !"#$%&'()+]+$/
如果要匹配连字符,则需要使用反斜杠将其转义,或将其放置在集合的开头或结尾,如下所示:
/[0-9 ()+-]+$/
另外,如果你说的“regex库”是指RegExLib.com,我不会相信我在那里找到的任何regex。你发布的一个例子就是:
/(^\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*$)/
首先,它可以写得更简洁:
/^(\d*\.?\d+|\d+\.\d*)$/
其次,它匹配字符串,如123.
和000000.0000000
,这可能是您不想要的。如果您真的只想匹配正数,您必须确保字符串中至少有一个非零数字,在小数点之前或之后。以下是一种方法:
/^(?:[1-9]\d*(?:\.\d\d?)?|0\.[1-9]\d?|0\.0[1-9])$/
我需要添加什么吗?因为如果我放置var intRegex=^\d+(?:。\d\d)$,我会得到语法错误;谢谢!请参阅后期编辑,我包括了var初始化以及我发现的错误谢谢您的友好和快速帮助!提示:这是一个很好的regexp测试站点:谢谢您的介绍:)
/^(?:[1-9]\d*(?:\.\d\d?)?|0\.[1-9]\d?|0\.0[1-9])$/