我需要一些帮助来理解trim函数。从文档中,它对character_mask的描述如下:
character_mask(可选)也可以使用character_mask参数指定剥离的字符。只需列出所有要删除的字符。具有您可以指定一系列字符。
当我通过指定trim($num,"$',")
进行测试时,它并没有像我预期的那样工作。
$num = '$1,000.00';
$findSymbol = strpos($num, '$'); // find $ symbol
if ($findSymbol === false) {
$num = $num;
}else{
$num = trim($num,"$',"); // strip the $ and the , symbol
}
var_dump($num); //OUTPUT: 1,000.00
基本上,我只想把$
和,
符号都去掉,所以输出看起来像这样:
1000.00
非常感谢您的帮助。谢谢
trim()从字符串的开头和/或结尾剥离列出的字符,如您引用的文档中所述。
从字符串的开头和结尾去掉空白(或其他字符)
如果要删除字符串中间的字符,请使用str_replace()
$num = str_replace(['$', ','], '', $num);
您也可以组合使用这两个功能:
$num = str_replace(',', '', trim($num, '$'));
使用str_replace
$num = '$1,000.00';
$findSymbol = strpos($num, '$'); // find $ symbol
if ($findSymbol === false) {
$num = $num;
}else{
//$num = trim($num,"$',"); // strip the $ and the , symbol
$num = str_replace(array('$',','), "", $num);
}
var_dump($num); //OUTPUT: 1,000.00
您可以通过删除允许的每个字符(在本例中为0-9
和.
)来实现这一点
preg_replace("/[^0-9.]/", "", $num );
它将删除除0-9
和.
之外的所有字符
$num = '$1,000.00';
echo preg_replace("/[^0-9.]/", "", $num );
输出
1000.00
您可以使用str_replace+数组在一行中完成所有操作。
echo str_replace(['$', ','], null, '$1,000.00');
1000.00