我想验证一个数字是否有某些参数,例如我想确保一个数字有3位小数是正数。我通过互联网搜索了不同的地方,虽然我找不到怎么做。我已将该文本框设为仅接受数字。我只需要其他功能。
谢谢,
$("#formEntDetalle").validate({
rules: {
tbCantidad: { required: true, number: true },
tbPrecioUnidad: { required: true, number: true },
}
messages: {
tbCantidad: { required: "Es Necesario Entrar una cantidad a la orden" },
tbPrecioUnidad: { required: "Es Necesario Entrar el valor valido para el producto" }
},
errorPlacement: function(error, element) {
parent = element.parent().parent();
errorPlace = parent.find(".errorCont");
errorPlace.append(error);
}
});
我想用以下内容控制该文本框:
$.validator.addMethod('Decimal',
function(value, element) {
//validate the number
}, "Please enter a correct number, format xxxx.xxx");
答案 0 :(得分:15)
基于示例here:
$.validator.addMethod('Decimal', function(value, element) {
return this.optional(element) || /^\d+(\.\d{0,3})?$/.test(value);
}, "Please enter a correct number, format xxxx.xxx");
或允许使用逗号:
$.validator.addMethod('Decimal', function(value, element) {
return this.optional(element) || /^[0-9,]+(\.\d{0,3})?$/.test(value);
}, "Please enter a correct number, format xxxx.xxx");
答案 1 :(得分:3)
为防止数字不能包含小数,您可以使用以下内容:
// This will allow numbers with numbers and commas but not any decimal part
// Note, there are not any assurances that the commas are going to
// be placed in valid locations; 23,45,333 would be accepted
/^[0-9,]+$/
要求总是有小数,你会删除?这使得它是可选的,并且还要求数字字符(\ d)为1到3位长:
/^[0-9,]+\.\d{1,3}$/
这被解释为匹配字符串(^)的开头,后跟一个或多个数字或逗号字符。 (+字符表示一个或多个。)
然后匹配。 (点)由于'''而需要使用反斜杠(\)进行转义的字符。通常意味着什么。
然后匹配一个数字,但只有1-3个。 然后必须出现字符串的结尾。 ($)
正则表达式非常强大且易于学习。一般来说,无论您将来遇到什么语言,它们都会让您受益。网上有很多很棒的教程,你可以在这些主题上找到书籍。快乐学习!