Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表示礼物的正则表达式&;只有数字_Php_Regex - Fatal编程技术网

Php 表示礼物的正则表达式&;只有数字

Php 表示礼物的正则表达式&;只有数字,php,regex,Php,Regex,我需要在PHP中验证一个数字,特别是在slug中传递的一个DB ID,但似乎无法正确获取正则表达式 我不能使用is\u numeric(),因为它不过滤我需要的数字,这与ctype\u digit() 它大部分工作正常,但我也需要在正则表达式中测试一个值,FALSE和'都返回为有效值 我试过返回!preg_match(“/[^0-9]{1}/”,$val)检查有效长度(不是值)1,但我似乎无法正确获取它 我已从中签出示例和注释,但无法使任何示例代码正常工作 是否有人知道当前的正则表达式,并且只知

我需要在PHP中验证一个数字,特别是在slug中传递的一个DB ID,但似乎无法正确获取正则表达式

我不能使用
is\u numeric()
,因为它不过滤我需要的数字,这与
ctype\u digit()

它大部分工作正常,但我也需要在正则表达式中测试一个值,
FALSE
'
都返回为有效值

我试过
返回!preg_match(“/[^0-9]{1}/”,$val)检查有效长度(不是值)1,但我似乎无法正确获取它

我已从中签出示例和注释,但无法使任何示例代码正常工作


是否有人知道当前的正则表达式,并且只知道数字

为什么要双重反转逻辑。最简单的方法是断言整个字符串由数字组成(精确地说是1个或多个数字):


为什么要双重颠倒逻辑呢。最简单的方法是断言整个字符串由数字组成(精确地说是1个或多个数字):

试试这个:

return !preg_match("^[0-9]+$",$val);
试试这个:

return !preg_match("^[0-9]+$",$val);

a) 您需要删除
否则你会得到OP想要的相反结果。b) 字符串中缺少分隔符。c) 如果你添加了它们,很遗憾,这正是我的答案。好吧,谢谢你的建议,我没有机器来测试它,只需将表达式放进去,你就不能有意义地使用JavaScript正则表达式测试仪来测试PHP问题了。对于这个简单的例子,这可能无关紧要,但总的来说,两个正则表达式引擎之间存在巨大的差异。是的,我知道。就像你说的,这是其中一个没有巨大差异的案例。无论如何,下次我会记住的。a)你需要删除
否则你会得到OP想要的相反结果。b) 字符串中缺少分隔符。c) 如果你添加了它们,很遗憾,这正是我的答案。好吧,谢谢你的建议,我没有机器来测试它,只需将表达式放进去,你就不能有意义地使用JavaScript正则表达式测试仪来测试PHP问题了。对于这个简单的例子,这可能无关紧要,但总的来说,两个正则表达式引擎之间存在巨大的差异。是的,我知道。就像你说的,这是其中一个没有巨大差异的案例。不管怎样,下次我会记住的。甜心,很好用!我之前尝试过类似的方法,但我的方法是:
returnpreg\u match(“/[^0-9]+$/”,$val)谢谢!!!我想我必须咬紧牙关,一劳永逸地学习正则表达式@请考虑接受答案,向未来的访问者展示你的问题已经解决了。如果你的老问题已经得到了充分的回答,同样的道理也适用于你的老问题!我之前尝试过类似的方法,但我的方法是:
returnpreg\u match(“/[^0-9]+$/”,$val)谢谢!!!我想我必须咬紧牙关,一劳永逸地学习正则表达式@请考虑接受答案,向未来的访问者展示你的问题已经解决了。如果你的老问题得到了充分的回答,同样的情况也会发生。
return preg_match('/^\d+$/', $val);
return !preg_match("^[0-9]+$",$val);