js中有三个截取字符字符的方法与substring切割语法的区别
关于截取字符串,刚刚接到了一个小需求,后台给字符串aaaaa/hhhhhh,需要向前台展示aaaaa做标题,hhhhhh做标题下面的小描述.
js中有三个截取字符的方法,分别是substring()、substr()、slice()
相同点:这三个方法都可以对字符串进行截取,并且返回一个新的字符串,也就是不会对原字符串进行修改
不同点:这三个方法的不同之处在于参数不同。
1)substring()方法用于提取字符串中介于两个指定下标之间的字符。
语法:string.substring(start,stop)
substring()方法返回的子串包括start处的字符,但不包括stop处的字符。
2)substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
语法:string.substr(start,length)
该方法与substring()最大的区别在于第二个参数是你需要截取字符串的长度,而不是位置。
start可以取负值,表示从字符串尾部往头部开始数(从右到左js截取字符串长度,注意是从1开始,比如-1指字符串中最后一个字符)
3)slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
语法:string.slice(start,end)
该方法的两个参数均为位置坐标,和subtring比较像,区别就是该方法支持负数,并且不会交换位置js截取字符串长度,始终是从start到end,如果该区间不存在,那么返回''。
总结:从上面测试得出结论,substring不支持负值,其他两种方式均支持负数表示,并且是从右边第一位开始计数。
substr的第二个参数是长度,这是和其他两种方式最大的不同之处,slice的方向性比较强,永远是从start=>end对应左=>右。
4)split()字符串切割
语法:
<pre>stringObject.split(separator,howmany)</pre>
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
注意:
1:如果把空字符串 ("") 用作separator,那么 stringObject 中的每个字符之间都会被分割。
2:如果找不到切割的字符串separator默认已整体切割,返回的数组长度为1
---------------------------------------------------------------------------------------------------
然后我们的需求就有解决方案了:
var string = aaaaa/bbbb
方法一:
title = string.split('/')[0] desc= string.split('/')[1]
方法二:
title = string.subtring(0,string.indexOf('/')) desc= string.subtring(string.indexOf('/')+1)
发表评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
热评文章
最新评论
Z.
11月29日
博主你好,Deng插件,这个点击不进去,提示这个(Warning: require_once(/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php): failed to open stream: No such file or directory in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26
Fatal error: require_once(): Failed opening required '/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26)
点都德
2天前
:喷::喜欢::怒::黑线: