全部, 假设某人提交了1234美元,我想检查第一个字符是否为$,如果是,我想删除它并只使用字符串的其余部分。所以在这个例子中,它将返回1234。
另外,如果用户没有输入,有没有办法总是添加.00?所以最终结果总是1234.00
所以这里有一些输入以及我希望得到的结果:
1234 = 1234.00
$1234 = 1234.00
$1234.23 = 1234.23
1234.23 = 1234.23
关于如何实现这一目标的任何想法?
答案 0 :(得分:4)
$newVal = number_format((float)ltrim('$1234.23', '$'), 2, '.', ''); // $newVal == '1234.23'
答案 1 :(得分:2)
最简单的方法是使用preg_match
,使用正则表达式:~^\\$?(\\d+(?:[.,]\\d+)?)$~
,所以整个代码都是:
$match = array();
if( preg_match( '~^\\$?(\\d+(?:[.,]\\d+)?)$~', trim( $text), $match)){
$yourValue = number_format( strtr( $match[1], array( ',' => '.')), 2, '.', '');
}
另一种选择是使用这样的代码:
$text = trim( strtr( $text, array( ',' => '.'))); // Some necessary modifications
// Check for $ at the beginning
if( strncmp( $text, '$', 1) == 0){
$text = substr( $text, 1);
}
// Is it valid number?
if( is_numeric( $text)){
$yourValue = number_format( $text, 2, '.', '');
}