我的格式中有一个价格字段,我应该只允许小数或浮点数,而不是我的价格字段中的字符和任何其他特殊和空格.
我怎么能得到那个?
这是我的代码:
$("#foo").blur(function() {
var price = $("#foo").value;
var validatePrice = function(price) {
return /^(\d*([.,](?=\d{3}))?\d+)+((?!\2)[.,]\d\d)?$/.test(price);
}
alert(validatePrice(price)); // False
});
Run Code Online (Sandbox Code Playgroud)
首先,这是更正后的代码:
$("#foo").blur(function() {
var price = $("#foo").val();
var validatePrice = function(price) {
return /^(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(price);
}
alert(validatePrice(price)); // False
});
Run Code Online (Sandbox Code Playgroud)
您需要分别测试空值(未定义).此外,如果要允许负值使用:
/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(price);
Run Code Online (Sandbox Code Playgroud)
这个正则表达式取自JörnZaefferer的JQuery Validate插件.我建议您考虑使用该插件,因为它包含许多其他功能.