$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);