验证内部类型值的字符串?使用正则表达式

时间:2015-01-14 16:50:20

标签: regex

我正在尝试验证我从服务器端获得的一系列数字。

所有我需要做的就是验证它们。直到现在我都没有遇到麻烦,但是当我negative number of string type regex正在破坏时,我遇到了问题

正则表达式:

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

我之前尝试添加[\-]以确保负值有效,但我无法使其完美运行。

示例:

 Value       My Output   Expected 

 1234.5   -   [true]   -  [true]
"1234.5"  -   [true]   -  [true]
"-1234.5" -   [false]  -  [true]
-1234.5   -   [false]  -  [true]
 1234.5   -   [true]   -  [true]

我在函数中使用正则表达式代码并将这些值作为参数传递给它,并尝试获取布尔值true / false作为返回值。

对于正则表达式测试人员 click here

对此有任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:2)

我不知道你曾经使^[0-9]\d*(\.\d+)?$匹配"1234.5"的黑魔法是什么,但这种模式应该可以胜任:

^("?)-?\d+(?:\.\d+)?\1$

regex101 demo.

答案 1 :(得分:1)

您可以在正则表达式的开头添加一个可选的-

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

Regex Demo

答案 2 :(得分:1)

由于负号是可选的,您需要使用'?'运营商。试试这个:

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