[ruby on rails]计算中英文混合字符串长度

中文,日文占2个字符,英文占1个字符,混合在一起时候计算长度:

ruby

string.encode("gbk").force_encoding("binary").force_encoding("gbk").encode("utf-8")
# 简写
string.encode('gbk').b.force_encoding("gbk").encode("utf-8")

JS

// 获取字符串长度
function getLength(str){
	var strLength = 0; // 记录str的总长度
	var Len = str.length;
	for(let i=0;i<Len;i++){
		var charCode = str.charCodeAt(i);// 使用charCodeAt返回单个字符的Unicode编码
		// if((charCode >= 0 && charCode <= 128)||(charCode >= 65377 && charCode <= 65439)){
		if(encodeURI(charCode).length<=4){
			strLength++; //英文字符加1
		}else {
			strLength = strLength+2;//中文,日文字符加2
		}
	}
	return strLength;
}

// 截取字符串
function subStrNum(str, len) {
	var strLen = str.length;
	var strCut = '';
	var strLengt

Guess you like

Origin blog.csdn.net/qq_41037744/article/details/111259680