Regex 带或不带冒号或小数点的验证数字的正则表达式
我想写一个只允许数字和小数点或冒号(:)而不允许小数点的正则表达式。贝娄就是一个例子 有效:Regex 带或不带冒号或小数点的验证数字的正则表达式,regex,Regex,我想写一个只允许数字和小数点或冒号(:)而不允许小数点的正则表达式。贝娄就是一个例子 有效: 87887 8787.878 8878:98 无效 abc 989ab 8987.89:87 我要验证正则表达式^[0-9:]+$,但它在小数点后接受冒号,这意味着如果我写898:89,它将显示为有效 您能帮我找到一个解决方案吗?您可以使用: ^\d+[.:]?\d+$ 更新: 87887 8787.878 8878:98 如果还要匹配.1,则应使用: ^\d*[.:]?\d+$ ^\d+[
87887
8787.878
8878:98
无效
abc
989ab
8987.89:87
我要验证正则表达式^[0-9:]+$
,但它在小数点
后接受冒号,这意味着如果我写898:89
,它将显示为有效
您能帮我找到一个解决方案吗?您可以使用:
^\d+[.:]?\d+$
更新:
87887
8787.878
8878:98
如果还要匹配.1
,则应使用:
^\d*[.:]?\d+$
^\d+[.:]?\d*$
^(?=.*\d)\d*[.:]?\d*$
如果您还想匹配1.
您应该使用:
^\d*[.:]?\d+$
^\d+[.:]?\d*$
^(?=.*\d)\d*[.:]?\d*$
如果要匹配所有组合,如.1
、1.
和12.34
,应使用:
^\d*[.:]?\d+$
^\d+[.:]?\d*$
^(?=.*\d)\d*[.:]?\d*$
这将起作用:
^(?:[0-9]+(?:[.:][0-9]+)?|[.:][0-9]+)$
-开始字符串锚定^
-启动非捕获组,以便开始和结束锚定是全局的,而不是成为or子句的一部分(?:
-允许数字[0-9]+
-可以选择允许冒号或句点,必须后跟至少一位数字(?:[.:][0-9]+)?
-或|
-冒号或句号后跟数字[.:][0-9]+
-关闭捕获组)
-结束字符串锚定$
请尝试下面的代码。演示是
看起来您希望创建一个正则表达式,但不知道从哪里开始。请查看资源,它有很多提示。另外,有关一些基本的正则表达式信息,请参阅post。一旦您准备好一些表达式,但解决方案仍然存在问题,请使用最新的详细信息编辑问题,我们将很乐意帮助您解决问题。向我们展示您的尝试。如何:
^\d+[。:]?\d+$
那么.54745
是否有效?此正则表达式要求至少两位数字。第一个\d+
可能应该是“\d*”,以匹配.123
。请尝试我的解决方案。它并没有要求至少有两个digits@Error-语法悔恨刚刚看到了你的评论,你建议的更改将完全修复这个正则表达式,以解释所有情况。现在要是托托能修改他们的答案,我就可以投票了。老兄,我真是烂透了:P好答案。