我正在尝试检查匹配项,因为用户在文本框中输入了值。
文本框的有效值如下:
"-"
"-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对其进行测试。