• JS获取字符串长度(英文占1个字符,中文汉字占2个字符)


    方法一:

    String.prototype.gblen = 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++;
    		}
    	}
    	return len;
    }
    

    方法二:

    function getStringLen(Str) {
    	var i, len, code;
    	if (Str == null || Str == "") return 0;
    	len = Str.length;
    	for (i = 0; i < Str.length; i++) {
    		code = Str.charCodeAt(i);
    		if (code > 255) {
    			len += 1
    		}
    	}
    	return len;
    }
    

    方法三:

    function getStringLen(val) {
    	var len = 0;
    	for (var i = 0; i < val.length; i++) {
    		var a = val.charAt(i);
    		if (a.match(/[^x00-xff]/ig) != null) {
    			len += 2;
    		} else {
    			len += 1;
    		}
    	}
    	return len;
    }
    

    方法四:

    function getStringLen(str) {
    	var len = 0;
    	for (var i = 0; i < str.length; i++) {
    		str.charCodeAt(i) > 255 ? len += 2 : len += 1;
    	}
    	return len;
    }
    

    以上几种方法都大同小异;来一个不一样的:

    方法五:

    function getBLen(str) {
    	// 把双字节的替换成两个单字节的然后再获得长度
    	if (str == null) return 0;
    	if (typeof str != "string") {
    		str += "";
    	}
    	return str.replace(/[^x00-xff]/g, "01").length;
    }
    

    注:[^x00-xff]即ASCII 编码,表示不在0-255的字符。而charCodeAt() 方法返回指定位置的字符的 Unicode 编码。汉字的编码范围是不在0-255内的。

  • 相关阅读:
    php odbc连接 查询显示不完整问题
    php集成环境
    intent实现网页跳转
    夜神模拟器
    Android编程知识点3-Intent
    Android编程知识点2- 线性布局,随机数
    Android编程知识点1-Button,ListView
    数据存储和访问
    Android计时器
    组件通信2
  • 原文地址:https://www.cnblogs.com/jone-chen/p/5577848.html
Copyright © 2020-2023  润新知