-1

我想验证这样的东西,数值和或用点

这些将是有效的:

  • 1
  • 1.1
  • 12.12.12
  • 123.123.123.12
  • 1.12.123.12345.123456

这些将无效:

  • .1
  • 1.
  • 123.123。
  • 123..

我试过的

  • /^[\d*\.?\d*]+$/.test(the_number_from_form_input_field)
  • this.value.match(/[^\d*\.?\d*$]/)
  • /^[\d+(\.\d)?]+$

我目前正在使用的

  • /^[\d\.]+$/.test(the_number_from_form_input_field)
  • this.value.match(/[^\d\.]/)

希望这与 .match() 和 .test() 一起使用

4

4 回答 4

4

如果您反转测试,这可能会更简单:

if (/\.([^\d]|$)/.test(myString)) {
    // test failed
}

即查找跟数字或字符串末尾的文字点。

于 2012-05-01T14:51:08.783 回答
2

不知道 jquery,但我认为这应该工作

^\d+(\.\d+)*$
于 2012-05-01T14:57:07.703 回答
1
myString.test(/^\d+(\.\d+)*$/);

JSfiddle

-edit- 感谢 veeTrain,最后\d*删除,因为它没有做任何事情。(它仍然在小提琴中)

于 2012-05-01T14:52:56.023 回答
0

我认为您可以通过这种方式找到这些值:

/^(\d+\.)*\d+$)/

查找零个、一个或多个数字和点分组,后跟一个或多个数字。

感谢 rsplak 的提琴;我们的正则表达式似乎都解决了这个问题。我在行动

于 2012-05-01T14:57:01.997 回答