匹配数字零或任何大于零的整数的Javascript正则表达式

匹配数字零或任何大于零的整数的Javascript正则表达式,javascript,regex,expression,Javascript,Regex,Expression,我已经搜索了几个小时,但找不到这个,请帮忙。我需要一个Javascript正则表达式来验证包含数量值的文本字段。该值可以是零或任何大于零的整数。数字不能以零开头,除非它们是。。。零。如果数量“字符串”的开头、中间或结尾有空格,则不应匹配 换句话说:“0”您可以使用以下示例: r=/^(0 |[1-9]\d*)$/ 控制台日志(“0”。匹配(r)); 控制台日志(“467”。匹配(r)); 控制台日志(“098”。匹配(r)); console.log(“13.match(r))/^(0+|[1

我已经搜索了几个小时,但找不到这个,请帮忙。我需要一个Javascript正则表达式来验证包含数量值的文本字段。该值可以是零或任何大于零的整数。数字不能以零开头,除非它们是。。。零。如果数量“字符串”的开头、中间或结尾有空格,则不应匹配


换句话说:“0”您可以使用以下示例:

r=/^(0 |[1-9]\d*)$/
控制台日志(“0”。匹配(r));
控制台日志(“467”。匹配(r));
控制台日志(“098”。匹配(r));
console.log(“13.match(r))
/^(0+|[1-9]\d*)$/
仅为
0
序列或包含不等于0且不以
0
开头的数字的任何字符串

console.log(“0:”,/^(0+|[1-9]\d*)$/.test(“0”);
console.log(“000:”,/^(0+|[1-9]\d*)$/.test(“000”);
console.log(“055:”,/^(0+|[1-9]\d*)$/.test(“055”);
console.log(“123:”,/^(0+|[1-9]\d*)$/.test(“123”);

console.log(“13:”,/^(0+|[1-9]\d*)$/.test(“13”)
您可以使用
parseInt(strQty)>=0&&parseInt(strQty).toString()==strqy
正如@JaromandaX所暗示的,因为您关心匹配的数字的值,所以最好将其转换为整数。我在代码中尝试了您的建议。虽然这不使用Reg Exp,但它是一个很好的解决方案,似乎适合我的需要。它捕获空格、非数字字符和前跟零的数字。太棒了,谢谢你!这个Reg表达式正好满足了我的需要。我不知道如何在表达式中实现OR,但我想我现在已经理解了您的解决方案。谢谢您的解决方案。由于-->0+0不受欢迎,它不能完全按照我的需要工作!我只是想
00…00
将是有效的,因为它都是零。
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;  
}