数码资讯
超长使用Javascript来截取字符串的字节
作为前端开发人员,在网页显示中经常会遇到很多问题,如标题太长、截取字符串、使用CSS来实现各种兼容性问题和各种各样的漏洞。 让后台程序部分,和各种各样的道奇,使回字节和即将削减旧的生活,最后只会给你一个切割长度的结束,不好看,不整洁,或返回整个CSS,兼容; 有越来越多的感情,在学生的前端轻声点赞。
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
作为前端开发人员,在网页显示中经常会遇到很多问题,如标题太长、截取字符串、使用CSS来实现各种兼容性问题和各种各样的漏洞。
让后台程序部分,和各种各样的道奇,使回字节和即将削减旧的生活,最后只会给你一个切割长度的结束,不好看,不整洁,或返回整个CSS,兼容;
有越来越多的感情,在学生的前端轻声点赞。
最近接触了一个项目,后台只提供了一个接口(JSON),所有页面都进行数据渲染,数据绑定到前端。最后,不考虑SEO,把页面全部主动交到我的手上,无意中撞到字节来拦截老问题。
在网络上简单地获取一个字节长度的方法:
复制代码代码如下所示:
string.prototype.blength =(功能){ / /字符串的字节长度
返回this.replace( /({ ^ 设备- xff })/ g,AA长度);
};
这真的很简单。大于ASCII码的字符被计算为两个字节,虽然严格不正确,但我们用来帮助显示效果,这是非常糟糕的,但坏的。
但我总觉得,有点投机取巧,经常花时间不是很好。事实上,它节省了两行代码,所以我决定用普通的方法计算。
复制代码代码如下所示:
功能getblength(STR){
对于(var i = str.length;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
我没有将方法扩展到字符串到图像的原型,或者由于效率问题,下面是测试代码:
复制代码代码如下所示:
扩展到字符串原型
(string.prototype.blength =功能){
var =,
n=0;
对于(var i = str.length;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
对要增加类似的方法的字符串
string.getblength =功能(STR){
对于(var i = str.length,n = 0;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
/第一个中英文混合长字符串的构造
var str =Javascript有效字节截断字符串的方法getblengthjavascript有效字节截取字符串的方法getblength ;
STR = str.replace( / / g,STR)。更换( / / g,STR);
console.log(创建的字符串的长度是:
console.log(测试)
console.log(str.blength()>,str. Blength())
console.log(string.getblength(STR)> >
console.log(效率测试开始)
VAR时间=新的日期()
对于(var i = 0;i < 100;i + +){
Str. Blength()
}
console.log(blength耗时:
VAR时间=新的日期()
对于(var i = 0;i < 100;i + +){
String.getBlength(STR)
}
console.log(getblength耗时:
可怜的表现不是原因,可以花很少但不定量,在原型链搜索,我不知道底部,可以留言告诉我:
所创建的字符串的长度为:314432。
-开始测试
复制代码代码如下所示:
Str. Blength()> 425408
String.getBlength(STR)> 425408
-效率测试开始—
blength耗时:1774
getblength耗时:95
现在我们必须截取字符串的基本功能,因为在这种情况下,字符占用最长的字节长度为2,因此最好使用二分法查找适当的截取位置。
一个效率应该很好的截断函数:
复制代码代码如下所示:
一个简单的计算/字节长度
string.getblength =功能(STR){
对于(var i = str.length,n = 0;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
根据指定的字节字符串
string.cutbyte =功能(STR,Len,endstr){
变量=镜头
,endstr = typeof(endstr)= 'undefined(endstr ToString):…;
功能N2(一){ var = / 2 | 0;回报(n>0,1)} / /二进制搜索
如果(!(STR + ),长度为len len <= 0 | | | |!)返回;}
如果(this.getblength(STR)<= len){ return str;} / /最耗时的函数判断,欢迎优化
VaR的镜头= Len - this.getblength(endstr)
_lens = 0
_strl = 0
而(_strl镜头){
无功_lens1 = N2(镜头_strl)
_strl = this.getBlength (str.substr (_lenS, _lenS1))
_lens = _lens1
}
返回str.substr(0,_lens-1)+ endstr
}
以上面的字符串来测试它,它应该是更费时,尽量切的20W的长度:
复制代码代码如下所示:
console.log(创建的字符串的长度是:
console.log(测试)
console.log(string.cutbyte(1开始1',6,'…)> >,String.cutByte(1开始1',6,'…))。)
console.log(string.cutbyte(STR,12,'…')> >,String.cutByte(STR,12,'…'))
console.log(string.cutbyte(STR,13,字符串。cutbyte,..)(STR,13..))
console.log(string.cutbyte(STR,14。')
console.log(string.cutbyte(STR,15,' ')> >,String.cutByte(STR,15,))
console.log(效率测试开始)
VAR时间=新的日期()
对于(var i = 0;i < 100;i + +){
String.cutByte(STR,200000,'…')
}
console.log(耗时:
输出结果:
所创建字符串的长度为:314432字节长度:425408
-开始测试
复制代码代码如下所示:
String.cutByte(1开始1',6,'…)> > 1开始1
String.cutByte(STR,12,'…')> > javascrip…
String.cutByte(STR,13,Javascript > >..)。
String.cutByte(STR,14,Javascript > >'。)。
String.cutByte(STR,15,' ')> > Javascript高
-效率测试开始—
耗时:155
事实上,改变截取字符长度的30W 40W的时间并不多,在二分法的脸,这是一个水平。
与前一字节长度的消耗相比,二分法用于查找截取时间仅小于两个字节的时间。
最后,要挑战学生的效率!
让后台程序部分,和各种各样的道奇,使回字节和即将削减旧的生活,最后只会给你一个切割长度的结束,不好看,不整洁,或返回整个CSS,兼容;
有越来越多的感情,在学生的前端轻声点赞。
最近接触了一个项目,后台只提供了一个接口(JSON),所有页面都进行数据渲染,数据绑定到前端。最后,不考虑SEO,把页面全部主动交到我的手上,无意中撞到字节来拦截老问题。
在网络上简单地获取一个字节长度的方法:
复制代码代码如下所示:
string.prototype.blength =(功能){ / /字符串的字节长度
返回this.replace( /({ ^ 设备- xff })/ g,AA长度);
};
这真的很简单。大于ASCII码的字符被计算为两个字节,虽然严格不正确,但我们用来帮助显示效果,这是非常糟糕的,但坏的。
但我总觉得,有点投机取巧,经常花时间不是很好。事实上,它节省了两行代码,所以我决定用普通的方法计算。
复制代码代码如下所示:
功能getblength(STR){
对于(var i = str.length;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
我没有将方法扩展到字符串到图像的原型,或者由于效率问题,下面是测试代码:
复制代码代码如下所示:
扩展到字符串原型
(string.prototype.blength =功能){
var =,
n=0;
对于(var i = str.length;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
对要增加类似的方法的字符串
string.getblength =功能(STR){
对于(var i = str.length,n = 0;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
/第一个中英文混合长字符串的构造
var str =Javascript有效字节截断字符串的方法getblengthjavascript有效字节截取字符串的方法getblength ;
STR = str.replace( / / g,STR)。更换( / / g,STR);
console.log(创建的字符串的长度是:
console.log(测试)
console.log(str.blength()>,str. Blength())
console.log(string.getblength(STR)> >
console.log(效率测试开始)
VAR时间=新的日期()
对于(var i = 0;i < 100;i + +){
Str. Blength()
}
console.log(blength耗时:
VAR时间=新的日期()
对于(var i = 0;i < 100;i + +){
String.getBlength(STR)
}
console.log(getblength耗时:
可怜的表现不是原因,可以花很少但不定量,在原型链搜索,我不知道底部,可以留言告诉我:
所创建的字符串的长度为:314432。
-开始测试
复制代码代码如下所示:
Str. Blength()> 425408
String.getBlength(STR)> 425408
-效率测试开始—
blength耗时:1774
getblength耗时:95
现在我们必须截取字符串的基本功能,因为在这种情况下,字符占用最长的字节长度为2,因此最好使用二分法查找适当的截取位置。
一个效率应该很好的截断函数:
复制代码代码如下所示:
一个简单的计算/字节长度
string.getblength =功能(STR){
对于(var i = str.length,n = 0;我--;){
n = str.charcodeat(I>2552):1;
}
返回N;
}
根据指定的字节字符串
string.cutbyte =功能(STR,Len,endstr){
变量=镜头
,endstr = typeof(endstr)= 'undefined(endstr ToString):…;
功能N2(一){ var = / 2 | 0;回报(n>0,1)} / /二进制搜索
如果(!(STR + ),长度为len len <= 0 | | | |!)返回;}
如果(this.getblength(STR)<= len){ return str;} / /最耗时的函数判断,欢迎优化
VaR的镜头= Len - this.getblength(endstr)
_lens = 0
_strl = 0
而(_strl镜头){
无功_lens1 = N2(镜头_strl)
_strl = this.getBlength (str.substr (_lenS, _lenS1))
_lens = _lens1
}
返回str.substr(0,_lens-1)+ endstr
}
以上面的字符串来测试它,它应该是更费时,尽量切的20W的长度:
复制代码代码如下所示:
console.log(创建的字符串的长度是:
console.log(测试)
console.log(string.cutbyte(1开始1',6,'…)> >,String.cutByte(1开始1',6,'…))。)
console.log(string.cutbyte(STR,12,'…')> >,String.cutByte(STR,12,'…'))
console.log(string.cutbyte(STR,13,字符串。cutbyte,..)(STR,13..))
console.log(string.cutbyte(STR,14。')
console.log(string.cutbyte(STR,15,' ')> >,String.cutByte(STR,15,))
console.log(效率测试开始)
VAR时间=新的日期()
对于(var i = 0;i < 100;i + +){
String.cutByte(STR,200000,'…')
}
console.log(耗时:
输出结果:
所创建字符串的长度为:314432字节长度:425408
-开始测试
复制代码代码如下所示:
String.cutByte(1开始1',6,'…)> > 1开始1
String.cutByte(STR,12,'…')> > javascrip…
String.cutByte(STR,13,Javascript > >..)。
String.cutByte(STR,14,Javascript > >'。)。
String.cutByte(STR,15,' ')> > Javascript高
-效率测试开始—
耗时:155
事实上,改变截取字符长度的30W 40W的时间并不多,在二分法的脸,这是一个水平。
与前一字节长度的消耗相比,二分法用于查找截取时间仅小于两个字节的时间。
最后,要挑战学生的效率!
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。