我已经搜索了几个小时,但找不到这个,请帮助。我需要一个Javascript正则表达式来验证将包含数量值的文本字段。该值可以是零或任何大于零的整数。数字不能以零开始,除非它们为零。如果数量“字符串”的开始,中间或结尾处有空格,则不应匹配。Javascript正则表达式匹配数字零或任何大于零的整数
换句话说:“0”< - 应该匹配。 “467”< - 应该匹配。 “098”< - 不应该匹配。 “1 3”< - 不应该匹配。
到目前为止,我必须使用两个Reg Exps,或者在Javascript中使用它们。这是工作。这是我的代码:
function qtyIsValid(strQty){
var isValid;
var reg1 = new RegExp('^0{1}$'); // <-- This matches a single ZERO and fails if any whitespace anywhere
var reg2 = new RegExp('^[1-9]+$'); // <-- This matches any number greater than zero and fails if any whitespace anywhere
if (reg1.test(strQty) || reg2.test(strQty)){
isValid = true;
}else{
isValid = false;
}
return isValid;
}
但是,这两个正则表达式可以合并到一个Javascript中吗?
谢谢。
你可以使用'parseInt函数(strQty)> = 0 && parseInt函数(strQty)的ToString()== strQty' –
作为含蓄说@JaromandaX,因为你在乎*值*你匹配的数字,你最好把它转换成一个整数。 – math2001
我在我的代码中尝试了你的建议。虽然这不使用Reg Exp,但它是一个很好的解决方案,可以满足我的需求。它捕获空格,非数字字符和以零开头的数字。真棒。 – user1816113