确定字符串中的第一个字符是否为$,如果它删除它并取其他所有内容

时间:2012-01-29 23:49:10

标签: php

全部, 假设某人提交了1234美元,我想检查第一个字符是否为$,如果是,我想删除它并只使用字符串的其余部分。所以在这个例子中,它将返回1234。

另外,如果用户没有输入,有没有办法总是添加.00?所以最终结果总是1234.00

所以这里有一些输入以及我希望得到的结果:

1234 = 1234.00
$1234 = 1234.00
$1234.23 = 1234.23
1234.23 = 1234.23

关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:4)

使用ltrimnumber_format

$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, '.', '');
}