js或php获取字符串长度中文1个字符,英文0.5个字符

标签: length
2018-12-20 阅读(200)

对用户输入字符,获取输入字符串长度,判断是否超过限定字数,常规字符串长度为字符个数。


一、1个中文为2个字符,1个英文为1个字符

举例:abc一二

结果:7


1、在php中

function m_strlen($str){
   return (strlen($str) + mb_strlen($str, 'UTF8')) / 2;
}
print_r(m_strlen("abc一二"));exit;


2、在js中

String.prototype.m_strlen = function() {
   var len = 0;
   for (var i=0; i<this.length; i++) {
      if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
         len += 2;
      } else {
         len += 1;
      }
   }
   return len;
};
alert("abc一二".m_strlen());




二、1个中文为1个字符,1个英文为0.5个字符

举例:abc一二

结果:3.5


1、在php中

function m_strlen($str){
   $len = strlen($str);
   $mb_len = mb_strlen($str, 'UTF8');
   return (($len - $mb_len) / 2 + $mb_len) / 2;
}
print_r(m_strlen("abc一二"));exit;


2、在js中

String.prototype.m_strlen = function() {
   var len = 0;
   for (var i=0; i<this.length; i++) {
      if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
         len += 1;
      } else {
         len += 0.5;
      }
   }
   return len;
};
alert("abc一二".m_strlen());




原创文章,转载请注明出处:https://www.weizhixi.com/user/index/article/id/88.html

分类:
点击(292) 阅读(200) 举报