JavaScript正则表达式(0-100),但不前导0

JavaScript正则表达式(0-100),但不前导0,javascript,regex,Javascript,Regex,我试图让正则表达式为0-100%工作,包括0,但不是作为前导数。 示例有效输入为0、10、34、100,无效输入为00、01、045000或任何大于100的数字 我发现这里有很多1-100的例子,但没有一个是0,我对正则表达式的理解不足并不能帮助我做出适当的调整。谢谢您的帮助。您可以使用此正则表达式: ^(?:\d|[1-9]\d|100)$ 正则表达式分解: ^:开始 ?::启动非捕获组 \d:匹配从0到9的数字 |:或 [1-9]\d:匹配10到99之间的数字 |:或 100比100 :结

我试图让正则表达式为0-100%工作,包括0,但不是作为前导数。 示例有效输入为0、10、34、100,无效输入为00、01、045000或任何大于100的数字


我发现这里有很多1-100的例子,但没有一个是0,我对正则表达式的理解不足并不能帮助我做出适当的调整。谢谢您的帮助。

您可以使用此正则表达式:

^(?:\d|[1-9]\d|100)$
正则表达式分解:

^:开始 ?::启动非捕获组 \d:匹配从0到9的数字 |:或 [1-9]\d:匹配10到99之间的数字 |:或 100比100 :结束非捕获组 $:完
您可以使用此正则表达式:

^(?:\d|[1-9]\d|100)$
正则表达式分解:

^:开始 ?::启动非捕获组 \d:匹配从0到9的数字 |:或 [1-9]\d:匹配10到99之间的数字 |:或 100比100 :结束非捕获组 $:完
你试过什么?给我们一个你努力的例子。呃,str.indexOf0==0&&str.length>1@adeneo这将在一堆无效输入上返回true,同时OP要求为此使用正则表达式。仅供参考,有许多正则表达式numb范围生成器可用。有些是在线的,有些是随附的。谢谢sln,我不知道。我也会调查的。下面的解决方案在这个案例中帮助了我。你尝试了什么?给我们一个你努力的例子。呃,str.indexOf0==0&&str.length>1@adeneo这将在一堆无效输入上返回true,同时OP要求为此使用正则表达式。仅供参考,有许多正则表达式numb范围生成器可用。有些是在线的,有些是随附的。谢谢sln,我不知道。我也会调查的。下面的解决方案在这个案例中对我很有帮助。为什么您将it作为非捕获组?似乎没有必要。在带有捕获组的正则表达式中使用时,应避免在正则表达式中捕获不必要的组,以节省内存并正确编号。@SpencerWieczorek-需要一个组,以便锚定将应用于每个替换。谢谢。这很管用,我很感谢你的解释,这对我理解更多很有帮助。我正在研究另一个基于范围的正则表达式,让我们看看我是否学到了一些东西;为什么您将it作为非捕获组?似乎没有必要。在带有捕获组的正则表达式中使用时,应避免在正则表达式中捕获不必要的组,以节省内存并正确编号。@SpencerWieczorek-需要一个组,以便锚定将应用于每个替换。谢谢。这很管用,我很感谢你的解释,这对我理解更多很有帮助。我正在研究另一个基于范围的正则表达式,让我们看看我是否学到了一些东西;