星空网 > 软件开发 > Java

浅析字符串操作方法slice、substr、substring及其IE兼容性

在截取字符串时常常会用到substr()、substring()、slice()方法,有时混淆之间的用法,故总结下。

 

slice()

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置。

1、传递参数为正值情况:

var str ="helloWorld";// 一个参数,则将字符串长度作为结束位置alert(str.slice(3)); // "loWorld"// 两个参数,7位置上的字符为"r",但不包括结束位置的字符alert(str.slice(3,7)); // "loWo"

2、传递参数为负值的情况:

slice()方**将传入的负值与字符串长度相加。

var str ="helloWorld";// 一个参数,与字符串长度相加即为slice(7)alert(str.slice(-3)); // "rld"// 两个参数,与字符串长度相加即为slice(3,6)alert(str.slice(3,-4)); // "loW"

3、第二个参数比第一个参数值小的情况:

slice()方法传入的第二个参数比第一个参数小的话,则返回空字符串。

var str ="helloWorld";alert(str.slice(5,3)); // ""

4、IE兼容性

在IE8浏览器测试下,没啥问题,行为与现代浏览器一致。

substring()

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数表示子字符串的结束位置(不包括结束位置的那个字符),如果没有传递第二个参数,则将字符串的长度作为结束位置。

1、传递参数为正值情况:与slice()方法行为相同的

var str ="helloWorld";// 一个参数,则将字符串长度作为结束位置alert(str.substring(3)); // "loWorld"// 两个参数,7位置上的字符为"r",但不包括结束位置的字符alert(str.substring(3,7)); // "loWo"

2、传递参数为负值的情况:

substring()方**把所有负值参数转换为0。来看下例子:

var str ="helloWorld";// 两个参数,-4会转换为0,相当于substring(3,0) -->即为 substring(0,3)alert(str.substring(3,-4)); // "hel"

substring()方**将较小的数作为开始位置,将较大的数作为结束位置。如上面的例子substring(3,0) 与substring(0,3)是一样效果的。

4、IE兼容性

在IE8浏览器测试下,没啥问题,行为与现代浏览器一致。

substr()

定义:接受一个或者两个参数,第一个参数指定子字符串的开始位置。第二个参数跟之前的方法有些区别,表示返回的字符个数。如果没有传递第二个参数,则将字符串的长度作为结束位置。来看例子:

1、传递参数为正值情况:

var str ="helloWorld";// 一个参数,则将字符串长度作为结束位置alert(str.substr(3)); // "loWorld"// 两个参数,从位置3开始截取后面7个字符alert(str.substr(3,7)); // "loWorld"

2、传递参数为负值的情况:

substr()方**将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。

var str ="helloWorld";// 将第一个负的参数加上字符串的长度--->//即为:substr(7,5) ,从位置7开始向后截取5个字符alert(str.substr(-3,5)); // "rld"// 将第二个参数转换为0// 即为:substr(3,0),即从位置3截取0个字符串,则返回空alert(str.substr(3,-2)); // ""

3、IE兼容性

substr()方法传递负值的情况下会存在问题,会返回原始的字符串。IE9修复了此问题。

总结

在传递正值参数情况下,slice() 和 substring () 行为是一致的,substr()方法在第二个参数上会容易混淆

在传递负值参数情况下,slice() 方法是通过字符串长度相加,符合一般思维,substring()第二个参数转换为0会容易出问题,起始位置会容易变更,

substr() 方法负值情况下会出现IE兼容性问题。

综上,小弟一般推荐使用slice()方法。

------------------------------------------------------

 




原标题:浅析字符串操作方法slice、substr、substring及其IE兼容性

关键词:string

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

关于2021年09月01日起SpeedPAK各路向运费调整的通知:https://www.goluckyvip.com/news/4919.html
正确选择仓储物流供应商的13个关键问题!:https://www.goluckyvip.com/news/492.html
Shopee可能开设印度站点?印尼二季度经济增速超韩国、越南:https://www.goluckyvip.com/news/4920.html
Lazada | 看千亿市场下的男颜经济,东南亚男性如何“为颜”剁手:https://www.goluckyvip.com/news/4921.html
TikTok催化新的侵权预警!注意产权排查:https://www.goluckyvip.com/news/4922.html
货代最赚钱?海运暴涨的根源是这一行业乱象!:https://www.goluckyvip.com/news/4923.html
深圳到西安自驾路线攻略 深圳到西安自驾最佳路线:https://www.vstour.cn/a/411228.html
松花蛋是哪里的特产松花蛋的产地:https://www.vstour.cn/a/411229.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流