我需要使用php支持带负号的十进制数字验证。
我已经用过preg_match('/^\d+\.\d+$/', latitude)
。
它工作正常,但是当纬度为-92.67
时,它不起作用。
答案 0 :(得分:1)
尝试改用此表达式:
^-?\d+.\d+$
所以您的代码如下:
preg_match('/^-?\d+.\d+$/', latitude)
-?
只是说'-'是可选的
答案 1 :(得分:0)
\d
仅匹配数字,因此您只需要允许这样的可选-
即可:
preg_match('/^-?\d+.\d+$/', latitude)
?
意味着前面的char必须出现0或1次(请参阅doc:http://php.net/manual/regexp.reference.repetition.php)
答案 2 :(得分:0)
也许您可以使用floatval()
和is_numeric()
?
“ floatval-获取变量的浮点值”
http://php.net/manual/en/function.floatval.php
“ is_numeric —查找变量是数字还是数字字符串”
答案 3 :(得分:0)