当前位置: 首页 > 知识库问答 >
问题:

正则表达式除带两个小数的数字外的一切

上官正志
2023-03-14

对于那些喜欢正则表达式的人,我有一个很好的挑战;像我一样。不幸的是,我无法理解这一点。

这个正则表达式是反向匹配。我需要匹配所有东西,但数量要合适;例如:

这些类型不需要匹配:

0,00
0.00
12314345.7
24234.54
34435,00
34545,43

这些类型需要匹配:

.00
,87
1e3,67

因此,除了带逗号或点的小数外,所有内容都需要在JavaScript中匹配(是的,相反)。

我已经做到了:

([^0-9]+([^\.,]{0,1})+[^0-9]{0,2})

但是,很明显,当它通过多个逗号或点时,它不能正常工作,并且没有将小数限制为最多两个。

共有2个答案

胡光霁
2023-03-14

试试这个:

/^(?!(\d+[\.,]\d+)).*$/gm

在此处查看更新的演示。

欧阳昊阳
2023-03-14

使用负前瞻的解决方案:

^(?!\d+([,.]\d{0,2})?$).*$

http://regex101.com/r/jY3tC3

注意:这个正则表达式需要锚定。我锚定在^$之间。

 类似资料:
  • 问题内容: 我需要一个正则表达式 那么任何数字。并再次编号和。 所以这是有效的 但 无效 我尝试了以下模式: 但这些都不满足我的要求。请帮忙? 我现有的代码是 问题答案: 这样的事情应该起作用: 编辑 是的,不从该描述,如果最终清除被允许(假定一个初始是 不 )。 如果不: 或者 (如果看起来更合乎逻辑) 测试 产生:

  • 我想验证用户输入,它应该由1和3之间的两位数字组成,用空格隔开。到目前为止,示例是匹配的。 是我的正则表达式还是我正在用一开始就错了吗? 例如,如果我输入,我就会得到这个。相反,我想验证它是正确的,然后继续进行,而不会被困在循环中。

  • 如何使用regex匹配任何单词而不显示指定的单词 我想去掉“你”这个词 我有一些词例如: 所以,这个项目的结果是:

  • 我能够编写一个正则表达式来验证输入框的以下标准。 至少包含14个字符 正则表达式- 然而,这个正则表达式允许其他未提及的特殊字符。我想限制所有特殊字符,除了这些

  • 问题内容: 我想查找没有重复数字的10位数字,例如: 目前,我正在使用正则表达式,但只能匹配10位数字(它不检查重复项。我正在使用此正则表达式: 可以使用正则表达式完成此操作,还是有更好的方法来实现此目的? 问题答案: 此正则表达式有效: 这使用锚定的否定前瞻和后向引用来断言没有重复的字符。 观看带有示例的现场演示。 在Java中:

  • 我不确定这是否可以使用正则表达式。我会尝试使用正则表达式,但如果不可能,我会切换到双重验证。 我的数据库(postgresql)接受为15,6(最多15位,最多6位小数),因此如果我有10位整数,我可以有5位小数。小数分隔符被忽略。 我目前有一个正则表达式(逗号是小数分隔符): 它不验证总长度,只验证左侧的数字。但由于用户也可以键入点(千位分隔符),我有一个怪物: