JS有什么好的处理字符串固定位置加入<br />,就是将一段文本实行自动换行

如题,求好点的写法一定要支持中文的,关键是js自带的substr不好用,例如"1235467".substr(0,5)=12345,实际长度也是5,"中文中文中文中".s... 如题,求好点的写法
一定要支持中文的,关键是js 自带的substr不好用,例如 "1235467".substr(0,5)=12345,实际长度也是5,"中文中文中文中".substr(0,5)=中文中文中,实际长度是10,这就不行了,求指导~
展开
 我来答
牵念烟0Z
2012-03-06 · TA获得超过207个赞
知道小有建树答主
回答量:313
采纳率:100%
帮助的人:338万
展开全部
$(function(){
var str = "12345一二三四五";
var str1 = str.subCHStr(0, 11);
var str2 = str.subCHString(0, 14);
console.log(str1 + " == " + str2);
});

//计算字符串长度
String.prototype.strLen = function() {
var len = 0;
for (var i = 0; i < this.length; i++) {
if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0) len += 2; else len ++;
}
return len;
};
//将字符串拆成字符,并存到数组中
String.prototype.strToChars = function(){
var chars = [];
for (var i = 0; i < this.length; i++){
chars[i] = [this.substr(i, 1), this.isCHS(i)];
}
String.prototype.charsArray = chars;
return chars;
};
//判断某个字符是否是汉字
String.prototype.isCHS = function(i){
if (this.charCodeAt(i) > 255 || this.charCodeAt(i) < 0)
return true;
else
return false;
};
//截取字符串(从start字节到end字节)
String.prototype.subCHString = function(start, end){
var len = 0;
var str = "";
this.strToChars();
for (var i = 0; i < this.length; i++) {
if(this.charsArray[i][1])
len += 2;
else
len++;
if (end < len)
return str;
else if (start < len)
str += this.charsArray[i][0];
}
return str;
};
//截取字符串(从start字节截取length个字节)
String.prototype.subCHStr = function(start, length){
return this.subCHString(start, start + length);
};

//不是原创,来源cnblogs, 但是百度不照顾版权不让放原始链接
濮焮戎fO
推荐于2018-05-10 · TA获得超过371个赞
知道小有建树答主
回答量:402
采纳率:100%
帮助的人:491万
展开全部
css换行能符合你要求不?
<div style="width:200px;word-wrap: break-word; word-break: normal;">内容</div>
这样内容超长后会自动换行。
更多追问追答
追问
真不行。。。因为是JS动态给区域内容的,自动换行不给力啊
追答
纯文本内容的话css换行效果应当都还可以吧。
能想到的另一个方法就是程序中读取指定字符数然后加,这样要考虑中英文及其他字符问题比较麻烦。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潜水小仔
2012-03-05
知道答主
回答量:73
采纳率:0%
帮助的人:25.5万
展开全部
把DIV的宽度定死横向不滚动,竖向滚动。试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shenjun007
2012-03-06 · 超过11用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:21.7万
展开全部
直接用css控制换行就对了 不需要什么都用程序控制吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-03-06 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1837万
展开全部
去数个数吧,把一个汉字当成是两个英文的来数.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式