午后星期午
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2013年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
统计
随笔 - 38
文章 - 0
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我的参与
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Java(10)
(rss)
JavaEE(18)
(rss)
Java编程思想摘录
(rss)
Js(8)
(rss)
Linux学习笔记
(rss)
SQL(1)
(rss)
XML&PROPERTIES(1)
(rss)
随笔档案
2014年3月 (3)
2013年12月 (35)
搜索
最新评论
阅读排行榜
1. 使用Spring mvc 利用java的反射技术,来扫描对应包下的注解请求url 统一保存在数据库中(1244)
2. Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析(355)
3. Spring邮件服务:Maven + Spring SMTP Mail(304)
4. Spring邮件服务之附件:Maven + Spring SMTP Mail With Attachment(271)
5. JS计算包含英文与汉字的字符串长度(一个汉字=2个字节)(236)
评论排行榜
1. Java 单例模式详解(0)
2. 值传递、引用传递的区别(0)
3. 使用Spring mvc 利用java的反射技术,来扫描对应包下的注解请求url 统一保存在数据库中(0)
4. 使用jQuery解析JSON数据(0)
5. Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析(0)
JS截取字符长度(按字节)
*
处理过长的字符串,截取并添加省略号
*
注:半角长度为1,全角长度为2
*
*
pStr:字符串
*
pLen:截取长度
*
*
return:
截取后的字符串
*
function
autoAddEllipsis(pStr,
pLen)
{
var
_ret
=
cutString(pStr,
pLen);
var
_cutFlag
=
_ret.cutflag;
var
_cutStringn
=
_ret.cutstring;
if
(
"1"
==
_cutFlag)
{
return
_cutStringn
+
"..."
;
}
else
{
return
_cutStringn;
}
}
*
*
取得指定长度的字符串
*
注:半角长度为1,全角长度为2
*
*
pStr:字符串
*
pLen:截取长度
*
*
return:
截取后的字符串
*
function
cutString(pStr,
pLen)
{
//
原字符串长度
var
_strLen
=
pStr.length;
var
_tmpCode;
var
_cutString;
//
默认情况下,返回的字符串是原字符串的一部分
var
_cutFlag
=
"1"
;
var
_lenCount
=
0;
var
_ret
=
false
;
if
(_strLen
<=
pLen/2)
{
_cutString
=
pStr;
_ret
=
true
;
}
if
(!_ret)
{
for
(
var
i
=
0;
i
<
_strLen
;
i++
)
{
if
(isFull(pStr.charAt(i)))
{
_lenCount
+=
2;
}
else
{
_lenCount
+=
1;
}
if
(_lenCount
>
pLen)
{
_cutString
=
pStr.substring(0,
i);
_ret
=
true
;
break
;
}
else
if
(_lenCount
==
pLen)
{
_cutString
=
pStr.substring(0,
i
+
1);
_ret
=
true
;
break
;
}
}
}
if
(!_ret)
{
_cutString
=
pStr;
_ret
=
true
;
}
if
(_cutString.length
==
_strLen)
{
_cutFlag
=
"0"
;
}
return
{
"cutstring"
:_cutString,
"cutflag"
:_cutFlag};
}
*
*
判断是否为全角
*
*
pChar:长度为1的字符串
*
return:
tb
true:全角
*
false:半角
*
function
isFull
(pChar)
{
for
(
var
i
=
0;
i
<
pChar.
strLen
;
i++
)
{
if
((pChar.charCodeAt(i)
>
128))
{
return
true
;
}
else
{
return
false
;
}
}
}
用例:
testStr = "测试1字符串";
autoAddEllipsis(testStr, 1); // "测..."
autoAddEllipsis(testStr, 2); // "测..."
autoAddEllipsis(testStr, 3); // "测..."
autoAddEllipsis(testStr, 4); // "测试..."
autoAddEllipsis(testStr, 5); // "测试1..."
autoAddEllipsis(testStr, 6); // "测试1..."
autoAddEllipsis(testStr, 7); // "测试1字..."
posted on 2013-12-31 14:04
午后星期午
阅读(116)
评论(0)
编辑
收藏
所属分类:
Js
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
使用jQuery解析JSON数据
重复提交、重复刷新、防止后退的问题以及处理方式
javascript 增,删,查,改 cookies
JavaScript中json对象和string对象之间的转化
JS计算包含英文与汉字的字符串长度(一个汉字=2个字节)
JS截取字符长度(按字节)
JS 获取字符串长度,截取字符串(中英文,一个汉字相当于2个字符)
忘掉jQuery,使用JavaScript原生API
Powered by:
BlogJava
Copyright © 午后星期午