我正在尝试仅替换字符串的第一个字符,但是它不起作用,它替换了字符串上的所有“ 0”,这是我的代码:
$mes2 = str_replace('0', '', $mes[0]);
我只想替换第一个字符为0的示例:
07变成7
我不想一直替换,例如:
11变成1,我不要。
我也尝试过这种方法,但是它并没有按照我想要的方式工作,因为如果它是0,它也会替换第二个字符,例如10变成1。
$mes2 = preg_replace('/0/', '', $mes, 1);
好吧,根据对问题的细化,您可能想要的是ltrim
。
$out = ltrim($in, "0");
这将从中剥离所有前导零$in
。它不会从其他任何地方删除零,也不会删除零以外的任何东西。当心; 如果您给它“ 000”,您将得到“”而不是“ 0”。
您可以改用类型转换,只要$in
始终是一个数字即可(或者如果不是,则希望它产生0):
$out = (int) $in;
...等等。
现在,在极少数情况下,您只想替换前0,例如,“ 007”变为“ 07”,那么问题中提到的最新尝试几乎就在那里。您只需要添加一个“插入号”字符以确保它仅与字符串的开头匹配:
$out = preg_replace('/^0/', '', $in);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句