PHP-如何使用trim可选字符_掩码剥离我想要剥离的所有字符

PHP-如何使用trim可选字符_掩码剥离我想要剥离的所有字符,php,Php,我需要一些了解修剪功能的帮助。 从文档中可以看出,它对字符屏蔽的描述如下: 字符屏蔽 或者,也可以使用character_mask参数指定剥离字符。只需列出所有要删除的字符。具有可以指定字符的范围 当我通过指定trim($num,“$\,”)进行测试时,它并没有像我预期的那样工作 $num = '$1,000.00'; $findSymbol = strpos($num, '$'); // find $ symbol if ($findSymbol === false) { $num

我需要一些了解修剪功能的帮助。 从文档中可以看出,它对字符屏蔽的描述如下:

字符屏蔽 或者,也可以使用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
非常感谢您的帮助。谢谢

按照您引用的文档中的描述,从字符串的开头和/或结尾去除列出的字符

从字符串的开头和结尾去除空白(或其他字符)

如果要删除字符串中间的字符,请使用

您还可以结合使用这两个功能:

$num = str_replace(',', '', trim($num, '$')); 
按照您引用的文档中的说明,从字符串的开头和/或结尾去除列出的字符

从字符串的开头和结尾去除空白(或其他字符)

如果要删除字符串中间的字符,请使用

您还可以结合使用这两个功能:

$num = str_replace(',', '', trim($num, '$')); 

您可以通过删除允许的每个字符(在本例中,这些字符是
0-9
)来完成此操作

它将删除除
0-9
以外的所有字符

preg_replace("/[^0-9.]/", "", $num );
$num = '$1,000.00';
echo preg_replace("/[^0-9.]/", "", $num );


您可以通过删除允许的每个字符(在本例中,这些字符是
0-9
)来完成此操作

它将删除除
0-9
以外的所有字符

preg_replace("/[^0-9.]/", "", $num );
$num = '$1,000.00';
echo preg_replace("/[^0-9.]/", "", $num );


使用
str\u替换

$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

使用
str\u替换

$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

您可以使用str_replace+数组在一行中完成所有操作

echo str_replace(['$', ','], null, '$1,000.00');

1000.00

您可以使用str_replace+数组在一行中完成所有操作

echo str_replace(['$', ','], null, '$1,000.00');

1000.00

>当我通过指定trim($num,“$\,”)进行测试时,它并没有像我预期的那样工作。-我想原因是你没有逃过反斜杠。当我通过指定trim($num,“$\”)进行测试时,只需将掩码编辑为
$\\,
>,它并没有像我预期的那样工作我想原因是你没有逃过反斜杠。只需将掩码编辑为
$\\,
。谢谢,但由于有一个可选的
字符\u掩码
,所以我希望可以使用这些选项来实现这一点。恐怕您无法使用字符列表来指定必须在字符串中删除字符的位置。。。。。trim()是非常具体的位置,无论是开始和/或结束,但我看到的不是中间位置。谢谢顺便说一句,你的代码导致了解析错误:语法错误,意外的“”“”(T_CONSTANT_ENCAPSED_STRING)是的,我漏掉了一个逗号,现在修复了这两个逗号之间几乎没有任何可测量的时间差,所以你最好根据可读性而不是速度来做出决定。。。。使用str_replace()对其他开发人员来说更容易理解它在做什么,但是preg_replace()使用任何货币符号都有好处,如:%或€或¥谢谢,但由于有可选的
字符掩码
,因此我希望可以使用选项实现这一点。恐怕您无法使用字符列表指定必须在字符串中删除字符的位置。。。。。trim()是非常具体的位置,无论是开始和/或结束,但我看到的不是中间位置。谢谢顺便说一句,你的代码导致了解析错误:语法错误,意外的“”“”(T_CONSTANT_ENCAPSED_STRING)是的,我漏掉了一个逗号,现在修复了这两个逗号之间几乎没有任何可测量的时间差,所以你最好根据可读性而不是速度来做出决定。。。。使用str_replace()对其他开发人员来说更容易理解它在做什么,但是preg_replace()的优点是,当您告诉
我想要的只是去掉$和,symbols
?@anagnam当你告诉
我想要的只是剥去$and,symbols
时,它是如何工作的?