验证正则表达式不允许单个数字 0

Posted

技术标签:

【中文标题】验证正则表达式不允许单个数字 0【英文标题】:Validation Regex to disallow a single digit 0 【发布时间】:2018-05-25 08:53:01 【问题描述】:

我尝试了许多示例来禁止单个数字 0。最接近的工作是[^0],但匹配2030 等。我只想匹配0

【问题讨论】:

请提供示例。例如,"0""0.0""-0""+0""00""zero: 0""0-0-0"" 0 "(空格)中的哪一个应该匹配? Regex - Match whole string的可能重复 【参考方案1】:

使用开始和结束锚点来匹配整个输入为零:

^0$

或者要匹配字符串中的单个零,请使用单词边界:

\b0\b

不允许在输入中使用单独的零,在否定前瞻中使用上述内容。

^(?!.*\b0\b).*

【讨论】:

谢谢波西米亚人。我正在尝试将“regExp”与 data-dojo-props 一起使用,以不允许在该字段中使用“0”,尽管允许正数和负数。使用 ^0$ 时,它“匹配”任何数字(5、6、7 等)。 data-dojo-props="constraints:min:-90,max:90,places:0, required:true, invalidMessage:'纬度是-90到90', regExp:'^0$', invalidMessage: '纬度不能为0'" />度   @JWK 我认为您的代码示例应该在原始问题中,所以请 edit it! 它有助于更​​好地展示您想要实现的目标。跨度> 【参考方案2】:

如果您不希望匹配零,但希望允许使用正数和负数。这使用锚点 ^$ 来断言字符串的开始和结束。

^[+-]?[1-9][0-9]*$

不使用锚点,您可以使用单词边界\b

[+-]?\b[1-9][0-9]*\b

这将匹配一个可选的加号或减号 [+-]?,一个从 1 到 9 的数字 [1-9],因此它不匹配一个零后跟零次或多次数字 [0-9]*

【讨论】:

这可能是吹毛求疵 :-) 但它允许0.0。这不是问题,但似乎本着它的精神也不允许这样做。 @第四只鸟-谢谢!做到了。我正在拔头发。 @PeterB 你确定这匹配0.0吗? test 1 和 test 2

以上是关于验证正则表达式不允许单个数字 0的主要内容,如果未能解决你的问题,请参考以下文章

必须包含小数点的数字的正则表达式

求 js 正则表示式 只能输入英文字母和数字

用于密码验证的正则表达式,仅特定字符 [重复]

验证个人信息的正则表达式

pl/sql 正则表达式验证

如何使用正则表达式验证范围 1-99?