PHP-如何使用trim可选的character_mask来剥离我想要剥离的所有字符


PHP - How to strip all characters that I want to be stripped using trim optional character_mask

我需要一些帮助来理解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