全部 后端程序前端模板插件二开综合求助谈天说地使用分享安卓开发

PHP中纯大写中文数字判断及转换数字处理

发布:2023-08-18 22:23分类:后端程序评论:0浏览:228

文本颜色

背景颜色

插入画图
// 判断字符串是否为纯大写中文数字
// 因为只匹配ASCII字符。要使代码对所有字符有效,需要使用Unicode正则表达式
$str = "壹拾贰";
$allowed_chars = "壹贰叁肆伍陆柒捌玖拾佰仟万亿";
echo preg_match("/^[$allowed_chars]+$/u", $str) ? '是' : '不是';
echo '<hr>';

// 或者这样
$str = "张三";
$allowed_chars = ["一","二","三","四","五","六","七","八","九","十","百","千","万","亿"];
$flag = true;
for($i=0;$i<mb_strlen($str, "UTF-8");$i++){
    if(!in_array(mb_substr($str, $i, 1, "UTF-8"), $allowed_chars)){
        $flag = false;
        break;
    }
}
echo $flag ? '是' : '不是';

//中文数字转数学数字
$char = "陆佰亿叁仟柒佰零伍万壹仟壹佰贰拾点玖陆";
$str = str_replace(['壹','贰','叁','肆','伍','陆','柒','捌','玖','拾','佰','仟','万','亿','点','零'], ['1','2','3','4','5','6','7','8','9','0+','00+','000+',')*10000+(','))*100000000+(','0.',''], $char);
$num = substr_count($str,'))*');
while ($num > 0){
    $str = '('.$str;
    $num--;
}
$str = 'return (float)'. str_replace('+)', ')', '('.$str.')') .';';
echo $char;
echo '<hr>';
echo '<pre>';print_r($str);
echo '<hr>';
echo eval($str);

文本颜色

背景颜色

    暂无回复!
登录后可回复
发布帖子

作者信息

anna
等级:Lv2
积分:6474
这家伙很懒,什么都没写呢~