js 关于中文字符串的一些处理

 // 获取字符串的字节长度

 function getStrLength(str) {  
  if(!str){
   return 0;
  }
  var cArr = str.match(/[^\x00-\xff]/ig);  
  return str.length + (cArr == null ? 0 : cArr.length);  
 }


 // 检查是否含有中文
 function isChinese(str) {  
  if(!str){
   return false;
  }
  var cArr = str.match(/[^\x00-\xff]/ig);
  if(!cArr || cArr.length <= 0){
   return false;
  }
  return true;
 }


  // 最多获取maxByte个字节(如果最后一个中文跨度,则获取maxByte+1个字节)的字符串内容
 function getStrByMaxByte(str,maxByte) {  
  if(!str || str.length == 0 || isNaN(parseInt(maxByte))){
   return str;
  }
  var cArr = str.match(/[^\x00-\xff]/ig);
  if(!cArr || cArr.length <= 0){//没有中文
   return str.slice(0,maxByte);
  }
  var totalLength = str.length + cArr.length;
  if(totalLength <= maxByte){//总字节数小于要求的最大限制
   return str;
  }
  var lengthTemp = 1;
  var maxByteTemp = 0;
  var strTemp = "";
  var cArr = null;
  if((maxByte % 2) == 0){
   lengthTemp = maxByte/2;
  }else{
   lengthTemp = (maxByte+1)/2;
  }
  while(maxByteTemp < maxByte){
   strTemp = str.slice(0,lengthTemp);
   cArr = strTemp.match(/[^\x00-\xff]/ig);
   maxByteTemp = strTemp.length + (cArr == null ? 0 : cArr.length);
   lengthTemp ++;
  }
  return strTemp;
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值