php中数字货币类型验证函数
程序员文章站
2022-05-15 12:02:07
...
function is_number( $str ) { if ( substr( $str, 0, 1 ) == "-" ) { $str = substr( $str, 1 ); } $length = strlen( $str ); $i = 0; for ( ; $i < $length; ++$i ) { $ascii_value = ord( substr( $str, $i, 1 ) ); if ( 48 <= $ascii_value && $ascii_value <= 57 ) { continue; } return FALSE; } if ( $str != "0" ) { $str = intval( $str ); if ( $str == 0 ) { return FALSE; } } return TRUE; } function is_decimal( $str ) { if ( substr( $str, 0, 1 ) == "-" ) { $str = substr( $str, 1 ); } $length = strlen( $str ); $i = 0; for ( ; $i < $length; ++$i ) { $ascii_value = ord( substr( $str, $i, 1 ) ); if ( 0 < $i && $ascii_value == 46 || 48 <= $ascii_value && $ascii_value <= 57 ) { continue; } return FALSE; } return TRUE; } function is_money( $str ) { $dot_pos = strpos( $str, "." ); if ( !$dot_pos ) { return FALSE; } $str1 = substr( $str, 0, $dot_pos ); if ( 14 < strlen( $str1 ) ) { return FALSE; } if ( !is_number( $str1 ) ) { return FALSE; } $str2 = substr( $str, $dot_pos + 1, strlen( $str ) - $dot_pos ); if ( strlen( $str2 ) != 2 ) { return FALSE; } if ( !is_number( $str2 ) ) { return FALSE; } return TRUE; } function is_money_len( $str, $int_len, $dot_len ) { $dot_pos = strpos( $str, "." ); if ( !$dot_pos ) { return FALSE; } $str1 = substr( $str, 0, $dot_pos ); if ( $int_len < strlen( $str1 ) ) { return FALSE; } if ( !is_number( $str1 ) ) { return FALSE; } $str2 = substr( $str, $dot_pos + 1, strlen( $str ) - $dot_pos ); if ( strlen( $str2 ) != $dot_len ) { return FALSE; } if ( !is_number( $str2 ) ) { return FALSE; } return TRUE; }