PHP计算字符串长度,中文长度为2,英文为1
PHP计算字符串长度,ASCII字符(英文、数字、字母等)长度算1,非ASCII字符(汉字等多字节字符)长度算2:
方法一:
将非ascii字符替换成两个星号,再使用strlen计算长度:
方法二:
循环判断每个字符是否为ASCII字符,是则加1,否则加2:
这是PHP版本,要使用JS按同样规则计算字符串长度,请参考:Javascript计算字符串长度,中文长度为2,英文为1
方法一:
将非ascii字符替换成两个星号,再使用strlen计算长度:
<?php function abslength( $str ) { return strlen(preg_replace("#[^\x{00}-\x{ff}]#u", '**', $str)); } echo abslength("爱E族: aiezu.com"); //输出16
方法二:
循环判断每个字符是否为ASCII字符,是则加1,否则加2:
<?php function abslength($s){ $n = 0; preg_match_all("/./us",$s,$matchs); foreach($matchs[0] as $p){ $n += preg_match('#^['.chr(0x1).'-'.chr(0xff).']$#',$p) ? 1 : 2; } return $n; } echo abslength("爱E族: aiezu.com"); //16
这是PHP版本,要使用JS按同样规则计算字符串长度,请参考:Javascript计算字符串长度,中文长度为2,英文为1