Php preg_replace函数不再删除减号
我已经在我的页面上使用这个功能一段时间了,突然它不能正常工作Php preg_replace函数不再删除减号,php,Php,我已经在我的页面上使用这个功能一段时间了,突然它不能正常工作 public function stripSignMinus($money) { return preg_replace('/[^\d-.]+/', '', $money); } 它应该去掉所有的字母、符号和减号 然而,它不再剥离负号。 我一直收到错误消息,preg_replace已被弃用 我想知道它是否没有删除减号,因为它已被弃用,所以我尝试了 return preg_replace_callback('/[^\d-.]+
public function stripSignMinus($money)
{
return preg_replace('/[^\d-.]+/', '', $money);
}
它应该去掉所有的字母、符号和减号
然而,它不再剥离负号。
我一直收到错误消息,preg_replace已被弃用
我想知道它是否没有删除减号,因为它已被弃用,所以我尝试了
return preg_replace_callback('/[^\d-.]+/','', $money);
然而,这根本不起作用。它不会移除任何东西。所以我猜我使用preg_replace_回调是错误的
我会说我不太擅长preg_替换表达式
我需要打电话给你
$functions->stripSignMinus("£-5");
替换引号中的内容并删除减号和货币符号。上述代码过去可以工作,但现在不再工作。
当然,引号中的项目也可以是字符串。那怎么办
function stripSignMinus($money)
{
return preg_replace('/[^\d\.]+/','',$money);
}
在这里您可以测试结果关于
function stripSignMinus($money)
{
return preg_replace('/[^\d\.]+/','',$money);
}
在这里,您可以测试结果对
-
进行转义,如\-
,以避免将其视为范围运算符或尝试返回preg\u replace('/[^\d\-.]+/',''$money);正如您所建议的,但它仍然保留负号inpreg_replace_callback()在其第二个参数中需要函数名。有关的详细信息:。顺便说一句,preg_replace没有被弃用,只有/e
修饰符是如果你想替换所有不是数字的东西,为什么不干脆:/[^\d]+/
?这确实有效,但它也删除了小数点。我需要小数点保留在像\-
那样的-
中,以避免将其视为范围运算符或尝试返回preg\u replace('/[^\d\-.]+/','$money));正如您所建议的,但它仍然保留负号inpreg_replace_callback()在其第二个参数中需要函数名。有关的详细信息:。顺便说一句,preg_replace没有被弃用,只有/e
修饰符是如果你想替换所有不是数字的东西,为什么不干脆:/[^\d]+/
?这确实有效,但它也删除了小数点。我需要小数点保持不变。只有在我没有货币符号的情况下,小数点才有效。如果我把-5放进去就行了,但如果我把-5放进去就不行了。我真的很希望preg_replace能够正常工作,就像它以前一样,我认为php更新杀死了它;var_转储(StripSign减去('12.10asdasd');var_dump(StripSign减去('5'));谢谢你,维塔利,这很有效。如果你把它作为一个答案,我可以投你一票。只有在我没有货币符号的情况下,这才有效。如果我把-5放进去就行了,但如果我把-5放进去就不行了。我真的很希望preg_replace能够正常工作,就像它以前一样,我认为php更新杀死了它;var_转储(StripSign减去('12.10asdasd');var_dump(StripSign减去('5'));谢谢你,维塔利,这很有效。如果你把它作为答案贴出来,我可以投你一票