Javascipt获取字符串真实长度(兼容IE,fireFox)
来源:自学PHP网
时间:2014-09-19 14:47 作者:
阅读:次
[导读] 在js中获取字符串长度我们会用到length来判断了,但是此函数对中文混合体是判断不准的,下面我总结了几个支持中英文识别的字符串长度检测函数。...
JS原先的长度中文跟英文一样一个字符为1个长度。所以这里就得需要大家自己判断并获取字符串的实际长度了。
核心代码:
代码如下 |
复制代码 |
var jmz = {};
jmz.GetLength = function(str) {
///<summary>获得字符串实际长度,中文2,英文1</summary>
///<param name="str">要获得长度的字符串</param>
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) realLength += 1;
else realLength += 2;
}
return realLength;
}; |
执行代码:
代码如下 |
复制代码 |
alert(jmz.GetLength('测试测试ceshiceshi));
|
JS版获取字符串真实长度和取固定长度的字符串函数(兼容IE,fireFox)
代码如下 |
复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS版获取字符串真实长度和取固定长度的字符串函数(兼容IE,fireFox)
</title>
</head>
<body>
<script type="text/javascript">
// 得到字符串的真实长度(双字节换算为两个单字节)
function getStrActualLen(sChars)
{
return sChars.replace(/[^x00-xff]/g,"xx").length;
}
// 截取固定长度子字符串 sSource为字符串iLen为长度
function getInterceptedStr(sSource, iLen)
{
if(sSource.replace(/[^x00-xff]/g,"xx").length <= iLen)
{
return sSource;
}
var str = "";
var l = 0;
var schar;
for(var i=0; schar=sSource.charAt(i); i++)
{
str += schar;
l += (schar.match(/[^x00-xff]/) != null ? 2 : 1);
if(l >= iLen)
{
break;
}
}
return str;
}
var str1="这是一个字符串截取的函数,this is a test!";
alert(getInterceptedStr(str1,29));
</script>
</body>
</html>
|
|