Php 带负号的十进制数字验证
我需要使用php支持带负号的十进制数字验证 我已经使用了Php 带负号的十进制数字验证,php,Php,我需要使用php支持带负号的十进制数字验证 我已经使用了preg\u match('/^\d+\.\d+$/',纬度) 它工作正常,但当纬度为-92.67时,它不工作。尝试使用以下表达式: ^-?\d+\.\d+$ 因此,您的代码如下所示: preg_match('/^-?\d+\.\d+$/', latitude) -?简单地说-是可选的\d只匹配数字,因此您只需允许如下选项: preg_匹配('/^-?\d+。\d+$/',纬度) ?表示前面的字符必须出现0或1次(请参阅文档:)也许您可
preg\u match('/^\d+\.\d+$/',纬度)
它工作正常,但当纬度为
-92.67
时,它不工作。尝试使用以下表达式:
^-?\d+\.\d+$
因此,您的代码如下所示:
preg_match('/^-?\d+\.\d+$/', latitude)
-?
简单地说-
是可选的\d
只匹配数字,因此您只需允许如下选项:
preg_匹配('/^-?\d+。\d+$/',纬度)
?
表示前面的字符必须出现0或1次(请参阅文档:)也许您可以使用floatval()
和是数字的()
“floatval-获取变量的浮点值”
“is_numeric-查找变量是数字还是数字字符串”
除了添加可选连字符
-?
外,还必须转义点\。
否则它将匹配,例如-9z90
或-9 90
,因为点匹配任何字符
您的正则表达式可能如下所示:
preg_match('/^-?\d+\.\d+$/', latitude)
您可以运行
var_dump(floatval('2或3个位置')、floatval('pink')
来解释为什么这不是一个好的验证方法。如果我们也使用is_numeric()函数呢?这使我的答案有用吗?还是我应该删除它?这取决于具体的规格。如果可以接受+0123.45e6
,则为数值()
可能可以。