检测输入中是否有任何负数

Chr*_*sen 0 php

我试图在PHP中检测以检查输入中是否有任何负数.

我知道输入只是一个数字,而不是很容易检查,但是当有数字的字符串时,如何检查.

example --- "This is a negative number -99" 
Run Code Online (Sandbox Code Playgroud)

那么现在如何检查该行中是否存在负数.

我这样想,但没有成功---

$post_data = "This is -12";

if (preg_match('/^\d+$/D', $post_data) && ($post_data < 0)) {
  echo "negetive integer!";
} else {
  echo 'not working';
}
Run Code Online (Sandbox Code Playgroud)

预期结果 -

 Detect if there is any -number like -1, -5, -15 .....
Run Code Online (Sandbox Code Playgroud)

谁知道如何解决这个问题!

Ash*_*ary 5

试试这个:

if (preg_match('/\-[\d]+/', $post_data)){
    echo "negetive integer!";
} else {
    echo 'not working';
}
Run Code Online (Sandbox Code Playgroud)

首先,你正在使用^,这意味着数字应该在字符串的开头,而不是这里的情况.所以我们先删除它.然后我们删除$符号,因为负数可以出现在字符串中的任何位置,而不仅仅是在结尾处.接下来,我们使用连字符( - )告诉正则表达式该数字应该有一个减号作为前缀,将其标记为负数.