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