可能重复:
stripping out all characters from a string, leaving numbers
我有一些API生成的内容如下:34 Canadian Dollars
。我试图摆脱字母字符,只保留数字字符。我怎么能这样做?
答案 0 :(得分:4)
$result = preg_replace('/[^0-9\.,]/', '', $input);
HTH。
编辑接受逗号和句号。
答案 1 :(得分:2)
鉴于您正在使用货币并且该数字可能包含逗号或小数点,您应该使用此代码:
preg_match('/([0-9\.,]+)/', $input, $matches);
// Output the amount.
echo $matches[1];
答案 2 :(得分:0)
preg_match对此非常适合。
preg_match("/^([0-9]*) *$/", $inputStr, $results);
echo $results[1];
此外,这个online regex tester是测试其他正则表达式模式的好地方。
答案 3 :(得分:0)
如果是您尝试收集的整数,则可以使用(int) $input
答案 4 :(得分:0)
好吧,我不知道你的目的,但如果数字总是在字符串的开头,你可以使用cast。
$int = (int)"34 Canadian Dollars";
OR
$string = "34 Canadian Dollars";
$number = (int)$string
希望有所帮助。另一个答案中的preg_replace也可以完成这项任务。