javascript - 在正则表达式javascript中仅排除0

标签 javascript regex

我想创建一个正则表达式,它将采用 1 到 10 的数值,但如果只提供 0,则不应接受

例如

1 is valid input
1111123455 is valid input
01 is valid input
010 is valid input
0000 is not valid input
0 is also not valid input
0000000000 is also not valid input 

我试过正则表达式

^([0-9]{1,10}|)$

它接受十个数字但如何避免只接受 0

最佳答案

您可以使用否定的前瞻:

^(?!0+$)[0-9]{1,10}$

参见 regex demo

详细信息:

  • ^ - 字符串的开始
  • (?!0+$) - 字符串末尾不允许只有零
  • [0-9]{1,10} - 1 到 10 位数字
  • $ - 字符串结尾。

注意:要也允许空值,请使用 0 作为限制量词中的最小参数:

^(?!0+$)[0-9]{0,10}$
              ^

参见 How Negative Lookahead Works ( more here ) 以了解有关 (?!0+) 如何在此模式中工作的更多信息。简而言之:就在字符串的开头,我们检查整个字符串是否只有零。如果在字符串开头之后有零个或多个,则匹配失败。否则,匹配1(或0)到10位数字并返回结果。

关于javascript - 在正则表达式javascript中仅排除0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39721925/

相关文章:

javascript - 检查URL是否包含www或https ://for RegEx

python - Unicode、正则表达式和 PyPy

ruby-on-rails - _是什么?下面的正则表达式是什么意思?

java - 如何获取给定正则表达式的所有子字符串?

javascript - 使用 cytoscape.js 展开和折叠组时如何保持先前的位置

javascript - 测试 Angular 形式

javascript - Ember JS 模板不渲染模型值

名称的 Javascript 验证正则表达式

javascript - Javascript JSON.stringify 和 PHP json_encode 一样吗?

javascript - JS 切换(显示)文本最简单的方法