博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
substing和slice的完整语义和区别
阅读量:5910 次
发布时间:2019-06-19

本文共 2133 字,大约阅读时间需要 7 分钟。

substring();

概述:

substring()返回字符串两个索引之间的值(或到字符串末尾)的字串;

语法:

 

str.substring(indexA, indexB)

 

参数:

indexA、indexB都是一个0到字符串长度之间的整数;

描述:

substring 提取从 indexA 到 indexB(不包括)之间的字符。特别地:

  • 如果 indexA 等于 indexBsubstring 返回一个空字符串。
  • 如果省略 indexBsubstring 提取字符一直到字符串末尾。
  • 如果任一参数小于 0 或为 NaN,则被当作 0。
  • 如果任一参数大于 stringName.length,则被当作 stringName.length

如果 indexA 大于 indexB,则 substring 的执行效果就像两个参数调换了一样。例如,str.substring(1, 0) == str.substring(0, 1)

示例

例子:使用 substring

下例使用 substring 输出字符串 "Mozilla" 中的字符:

// 假设 print 函数已被定义var anyString = "Mozilla";// 输出 "Moz"console.log(anyString.substring(0,3));//从0到3位置构成的字符串,但是3位置不包含;console.log(anyString.substring(3,0));//如果indexA>indexB,indexA和indexB交换// 输出 "Mozill"console.log(anyString.substring(0,6));console.log(anyString.substring(0));//从0到最后位置全部截取;// 输出 "Mozilla"console.log(anyString.substring(0,7));console.log(anyString.substring(0,10)); console.log(anyString.substring());//没有参数就全部返回

slice();

概述

slice() 方法提取字符串中的一部分,并返回这个新的字符串。

语法

string.slice(i, j)

参数

i

从该索引(以 0 为基数)处开始提取原字符串中的字符。如果该参数为负数,则它表示从原字符串中的倒数第几个字符开始抽取, slice(-2)表示抽取了原字符串中的倒数第二个字符到最后一个字符(包含最后一个字符)

j

在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice会一直提取到字符串末尾。如果该参数为负数,则它表示在原字符串中的倒数第几个字符结束抽取.。slice(-2, -1) 表示抽取了原字符串中的倒数第二个字符到最后一个字符(不包含最后一个字符,也就是只有倒数第二个字符)。

描述

slice 不修改原字符串,只会返回一个包含了原字符串中部分字符的新字符串。

slice(1,4) 提取了原字符串中的第二个字符开始直到第四个字符的所有字符 (索引为 1, 2, 3的字符)。

str.slice(2, -1) 提取第三个字符到倒数第二个字符。

例子

例子: 使用 slice 创建一个新的字符串

// 假定存在一个 print 函数var str1 = "The morning is upon us.";var str2 = str1.slice(4, -2);print(str2);//morning is upon u 下面的这几点和substring相同: var  bb="abc"; bb.slice(1);//bc  从1位置开始到末尾全部获取 bb.slice(0,1);//a 从0为位置开始到1位置(1位置包含) bb.slice();//abc  没有参数则全部返回

两者之间的区别:

1、substring中的参数可以互换,而slice中却不可以,会自动认为字符串不存在;

var  aa="hello world";aa.substring(11,6);//worldaa.slice(11,6);//""

2、substring中的参数不能为负值,而slice中的两个参数都可以为负值;

var  aa="hello world";aa.substring(5,-1);//"hello"这里的参数不能为负数,若为其中一个负数会自动转换为0,相当于aa.substring(5,0);然后参数又可以交换,最终变为aa.substring(0,5); aa.substring(-1);//"hello world"相当于aa.substring(0);
aa.slice(5,-1);//" worl" aa.slice(0,-1);//"hello worl" aa.slice(-5,-1);//"worl"
aa.slice(-6,0);//""

 

转载于:https://www.cnblogs.com/whyx/p/4485086.html

你可能感兴趣的文章
使用Unirest发送Json的格式数据
查看>>
亚洲诚信&华为云 | 双11钜惠提前来袭,错过等一年!
查看>>
目前所学的关键字整理
查看>>
我的友情链接
查看>>
Eclipse常用配置
查看>>
linux修改IP和DNS
查看>>
我的友情链接
查看>>
WordPress新增Page的模版文件
查看>>
WP移动设备压缩与解压控件Xceed Zip for .NET Compact Framework控件下载及详细介绍使用方法...
查看>>
proc文件系统探索 之 根目录下的文件[六]
查看>>
搭建ICINGA监控
查看>>
DataSet
查看>>
第三方分享功能
查看>>
Quartz.NET 前一次任务未执行完成时不触发下次的解决方法
查看>>
SQL中的null值
查看>>
python unittest之断言及示例
查看>>
online_judge_1106
查看>>
JAVA_内部类
查看>>
jxl 导入excel
查看>>
Mysql之performance Schema
查看>>