javascript中substring()、substr()、slice()的区别

 更新时间:2015年08月30日 16:09:19   投稿:hebedich  
在js中字符截取函数有常用的三个slice()、substring()、substr()了,下面我来给大家介绍slice()、substring()、substr()函数在字符截取时的一些用法与区别吧。

stringObject.substring(start,stop) 用于提取字符串中介于两个指定下标之间的字符。

start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

start从0开始 到stop(不包含stop)结束 不接受负的参数。

stringObject.substr(start,length)可在字符串中抽取从start下标开始的指定数目的字符

start 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

stringObject.slice(start,end)提取字符串的某个部分,并以新的字符串返回被提取的部分

start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

返回新的字符串包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符

string.slice()
string.substring()
string.substr()
 
var stringValue = “hello world”;
alert(stringValue.slice(3));          //”lo world”
alert(stringValue.substring(3));      //”lo world”
alert(stringValue.substr(3));        //”lo world”
alert(stringValue.slice(3,7));         //”lo w”
alert(stringValue.substring(3,7));    //”lo w”
alert(stringValue.substr(3,7));       //”lo worl”

三者如果只有一个参数n 则会从第n个位置开始返回剩余字符串(从0开始计算位置)

如果有两个参数n,m,slice与substring会从第n个位置开始返回到第m个位置(不包括第m位置)的字符串,而substr会返回从第n个位置开始的m个字符。
———————————————————————————————
 

string.slice()
string.substring()
string.substr()
var stringValue = “hello world”;
alert(stringValue.slice(-3));          //”rld”
alert(stringValue.substring(-3));      //”hello world”
alert(stringValue.substr(-3));        //”rld”
alert(stringValue.slice(3,-4));         //”lo w”
alert(stringValue.substring(3,-4));    //”hel”
alert(stringValue.substr(3,-4));       //”"(空字符串)

当参数是负值情况下,slice将传入负值与字符串长度(string.length)相加,substr会将负的第一个参数加上字符串长度,第二个转换为0,substring会将所有负值都转换成0。

IE的JavaScript实现在处理向substr()方法传递负值的情况时存在问题,它会返回原始的字符串。

相关文章

  • JavaScript实现表单全选或反选效果

    JavaScript实现表单全选或反选效果

    这篇文章主要为大家详细介绍了JavaScript实现表单全选或反选效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 详解Js模块化的作用原理和方案

    详解Js模块化的作用原理和方案

    这篇文章主要介绍了Js模块化的作用原理和方案,对JS模块化感兴趣的同学,可以参考下
    2021-04-04
  • js实现简单div拖拽功能实例

    js实现简单div拖拽功能实例

    这篇文章主要介绍了js实现简单div拖拽功能的方法,实例分析了javascript针对div层拖拽的实现技巧,需要的朋友可以参考下
    2015-05-05
  • JavaScript+canvas实现七色板效果实例

    JavaScript+canvas实现七色板效果实例

    这篇文章主要介绍了JavaScript+canvas实现七色板效果的方法,结合实例形式详细分析了JavaScript结合html5的canvas技术实现绘制七色板效果的相关技巧,需要的朋友可以参考下
    2016-02-02
  • TypeScript模块与命名空间的关系和使用方法

    TypeScript模块与命名空间的关系和使用方法

    在TypeScript中就像在EC5中一样,任何包含顶级import或export的文件都被认为是一个模块,下面这篇文章主要给大家介绍了关于如何在TypeScript使用模块与命名空间以及注意事项的相关资料,需要的朋友可以参考下
    2023-03-03
  • 微信小程序动态设置图片大小的方法

    微信小程序动态设置图片大小的方法

    这篇文章主要介绍了微信小程序动态设置图片大小的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • 解析JavaScript中的不可见数据类型

    解析JavaScript中的不可见数据类型

    这篇文章主要是对JavaScript中的不可见数据类型进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 详解多页应用 Webpack4 配置优化与踩坑记录

    详解多页应用 Webpack4 配置优化与踩坑记录

    这篇文章主要介绍了详解多页应用 Webpack4 配置优化与踩坑记录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • JavaScript实现左右下拉框动态增删示例

    JavaScript实现左右下拉框动态增删示例

    本篇文章主要介绍了JavaScript实现左右下拉框动态增删示例,可以对下拉框进行删除和增加,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • Js md5加密网页版MD5转换代码

    Js md5加密网页版MD5转换代码

    Js实现网页上的MD5加密功能,将文字转换为MD5字符,本代码调用简单,你可以新建一个网页,将此网页上传到你的服务器上,用户浏览网页,就可实现MD5加密转换功能,用户可方便查询任一字符的MD5码,很不错的功能
    2013-03-03

最新评论