javascript 正确截取单字节和双字节混和字符串的方法

在 javascript 中,英文和中文等双字节字符都被当作是1个字符,但是通常我们需要将中文按两个字节处理,本文介绍的就是用 javascript 正确截取单字节和双字节混和字符串的方法。

javascript 正确截取单字节和双字节混和字符串的方法 – 示例

 
<script type="text/javascript">
/*************************************************************
	Author		: Yanfu Xie <xieyanfu@yahoo.com.cn>
	Url		: http://YITU.org

	Description	: 正确截取单字节和双字节混和字符串
	String str	: 要截取的字符串
	Number		: 截取长度
 *************************************************************/
function substr(str, len)
{
	if(!str || !len) { return ''; }

	//预期计数:中文2字节,英文1字节
	var a = 0;

	//循环计数
	var i = 0;

	//临时字串
	var temp = '';

	for (i=0;i<str.length;i++)
	{
		if (str.charCodeAt(i)>255) 
		{
			//按照预期计数增加2
			a+=2;
		}
		else
		{
			a++;
		}
		//如果增加计数后长度大于限定长度,就直接返回临时字符串
		if(a > len) { return temp; }

		//将当前内容加到临时字符串
		temp += str.charAt(i);
	}
	//如果全部是单字节字符,就直接返回源字符串
	return str;
}

var str = "呵呵he哈哈嘿嘿and";

document.write("字符串:<font color='red'>"+str+"</font><br /><br />");
document.write("javascript 默认截取10个字节的返回值:<br />");
document.write("<font color='red'>"+str.substr(0, 10)+"</font><br /><br />");
document.write("用本文介绍的方法截取10个字节的返回值:<br />");
document.write("<font color='red'>"+substr(str, 10)+"</font><br /><br />");
document.write("截取9个字节的返回值:<br />");
document.write("<font color='red'>"+substr(str, 9)+"</font><br /><br />");
</script>

用类似的方法可以很容易的做出判断单字节和双字节混和字符串长度的方法。

《javascript 正确截取单字节和双字节混和字符串的方法》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>