我正在尝试检查匹配项,因为用户在文本框中输入了值。

文本框的有效值如下:

"-"

"-5.5"

"-5.5 6.5 7.5"


无效将是

"-5.5   6.5    "


编辑:^在-5.5和6.5之间有一个以上的空格,但是由于某些原因没有显示。

"3.5 "

^(-?)(\d+\.?\d?)\s?(-?\d+\.?\d?)


请记住,负号是唯一允许使用的特殊字符(小数点除外)。

谢谢。

最佳答案

我认为这是您要寻找的:

^(-|-?\d+\.?\d?([ ]-?\d+\.?\d?)*)$


这将匹配单个连字号或任意数量的以空格分隔的正数或负数,并带有可选的小数点,且其后最多1位数字。这将允许"5.5 6.5""-5.5 -6.5"之类的值(您的问题未指定是否应与之匹配)

您可以here对其进行测试。



更新资料

这将允许更多的匹配项,但是满足了在用户键入时支持每个有效序列的新要求。当然,它允许的甚至更多,因为不可能确定无效输入和仅是不完整的输入之间的差异(例如-5 -)。

^(-?(\d+\.?\d?( |$)|$))*$


您可以here对其进行测试。

10-07 19:16
查看更多