手机版

js中根据字数截取字符串,不能截断全球资源定位器(统一资源定位符)

时间:2021-10-11 来源:互联网 编辑:宝哥软件园 浏览:

今天收到个需求: 1,给一个文字,对输出的文字进行截取,保留400个字符2,截取内容最后如果是url,保留完整全球资源定位器(统一资源定位符)地址3,添加省略号.-其中对全球资源定位器(统一资源定位符)的保留比较麻烦,尤其是有两个相同全球资源定位器(统一资源定位符)时不能采用索引关于获取其字符位置。处理结果

相关代码:复制代码代码如下:字符串。原型。sizeat=function(){ var nLEn=0;for(var i=0,end=this . lentiendi){ nLEn=this . charcodeat(I)128?2:1;}返回nLen };字符串。原型。cut str=function(n,Scut){ if(this。SiZeat()=n){返回这个;} sCut=sCut | |var max=n-Scut。SiZeat();var nLEn=0;var s=这个;for(var i=0,end=this . lentiendi){ nLEn=this . charcodeat(I)128?2:1;if(nLenmax){ s=this.slice(0,I);s=sCut打破;} }返回s . ToString();};字符串。原型。cutstrbuturl=function(n,Scut){ if(this。SiZeat()=n){返回这个。ToString();} sCut=sCut | |var max=n-Scut。SiZeat();var s=这个;//查找所有包含的url var aUrl=s.match(/https?\/\/[a-zA-Z0-9] (\ .[a-zA-Z0-9] ) ([-_A-Z0-9a-z\$\ .\ \!\*\/,@=\?\ ~ \ # \ %]*)*/gi);//当第最大个字符刚好在全球资源定位器(统一资源定位符)之间时,bCut会被设置为flasevar bCut=trueif(aUrl){ //对每个全球资源定位器(统一资源定位符)进行判断对于(var i=0,迪恩=AurL . LengienDii){ var SurL=AurL[I];//可能出现两个相同全球资源定位器(统一资源定位符)的情况var Ap=s . split(SurL);var nCurr=0;var nLenurl=surl。SiZeat();var sResult=for(j=0,endJ=Ap . lengthjendjj){ nCurr=Ap[j].sizeAt();sResult=Ap[j];sResult=sUrl//当前字数相加少于最大但添加全球资源定位器(统一资源定位符)超过最大:即会截到URL if(nCurr max nCurr nLenurlmax){ s=sResult Scut;bCut=假打破;} nCurr=nLenurl } if(BCut===false){ break;} };} if(bCut){ s=s.cutStr(n,Scut);}返回s . ToString();};console.log('正常截取20个字符cutStrButUrl(20’,'));console.log('正常截取20个字符,但我超了cutStrButUrl(20 ','));console.log('有全球资源定位器(统一资源定位符)的字符串http://www.baidu.com你能截取到吗?'。cutStrButUrl(20 ','));控制台。日志(' http://www。百度。com有两个相同全球资源定位器(统一资源定位符)的字符串http://www.baidu.com好吗?'。cutStrButUrl(51 ','));

版权声明:js中根据字数截取字符串,不能截断全球资源定位器(统一资源定位符)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。