简单PHP整数转换

简单PHP整数转换,php,Php,换算成这个:300美元 至此:300 无法使用intval()或(int)执行此操作 打字 如果非数字字符为 后缀(300美元),包括工作和 返回300 如果带前缀,则返回0 非数字字符可以是“$”以外的任何字符(即“askldjflksdjflsd”) 请帮忙 编辑:列表项不是要求,而是我所做的活动和观察的列表。抱歉:(您可以通过执行以下操作来删除输入中的所有非数字: $input = preg_replace('/\D/','',$input); 不需要正则表达式。我得到“警告:fil

换算成这个:300美元 至此:300

  • 无法使用intval()或(int)执行此操作 打字
  • 如果非数字字符为 后缀(300美元),包括工作和 返回300
  • 如果带前缀,则返回0

  • 非数字字符可以是“$”以外的任何字符(即“askldjflksdjflsd”)
请帮忙


编辑:列表项不是要求,而是我所做的活动和观察的列表。抱歉:(

您可以通过执行以下操作来删除输入中的所有非数字:

$input = preg_replace('/\D/','',$input);

不需要正则表达式。

我得到“警告:filter_input()希望参数1很长,字符串在php shell代码的第1行中给出”在PHP5.2.10中,参数1应该是常量。参数2应该是变量。继续进行并更改
过滤器,因为这显然是目的。不符合OP的所有要求。是的。他说没有使用
(int)
。我使用了
(integer)
“例如,非数字字符可以是“$”(即“askldjflksdjflsd”)”以外的任何字符。我认为当他说不要使用
(int)
,这是因为单独使用
(int)
无法完成任务。违反了问题中的两个项目:“不能使用intval()或(int)类型转换”(尽管这可能是一个观察结果,即这些字符串对目标字符串不起作用,这不是一个要求);“非数字字符可以是除“$”以外的任何字符(即“askldjflksdjflsd”)“如果澄清这些项目符号显然是观察而不是澄清,那么将撤销否决投票;但是,投票太老了,不允许更改。这不符合要求的交易是否包括最后一个项目符号?我明白了。因此,这些项目符号实际上是关于尝试使用
intval()
(int)进行投票的观察结果。”
而不是要求?抱歉,但你在提问时必须更清楚。-1没问题。反正是我的错:(您可能希望编辑该问题,以便更清楚地了解最后一部分是否也是一项观察,因为它确实看起来像一项要求,但列表的其余部分不是。不过,请记住确保您确实获得了匹配项。您也可以尝试将表达式包装在一个组中,以便获得所有数字组。)包含在字符串中,这可能很有用(特别是当您需要更紧密的匹配时,例如,数字必须以特定的子字符串作为前缀。此外,如果您也需要考虑小数,则可能需要将正则表达式替换为“/\d+(\。\d+)?/”
”/(\d+。\d*\。\d+)/“,如果您希望小数用类似于“
”的符号来表示
(=0.5)也是。
preg_match('/\d+/', $num, $matches);
echo $matches[0];
$number = (integer) str_replace('$', '', $number);
$input = preg_replace('/\D/','',$input);
print (int) trim('$300', '$');