substring和slice

本文详细介绍了JavaScript中处理字符串的方法,如substring、slice等的功能与用法,并对比了它们之间的区别。同时,文章还提供了实例帮助理解如何正确应用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

substring 方法

返回位于 String 对象中指定位置的子字符串。

strVariable.substring(start, end)
"String Literal".substring(start, end)

参数

start

指明子字符串的起始位置,该索引从 0 开始起算。

end

指明子字符串的结束位置,该索引从 0 开始起算。

说明

substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。

substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。

如果 start 或 end 为 NaN 或者负数,那么将其替换为0。

子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。

示例

下面的示例演示了 substring 方法的用法。

?
1
2
3
4
5

6
function SubstringDemo(){
   var ss; // 声明变量。
   var s = "The rain in Spain falls mainly in the plain.." ;
   ss = s.substring(12, 17); // 取子字符串。
   return (ss); // 返回子字符串。

arrayObject.slice(start,end)
参数描述
start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

返回值

返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

说明

请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。


重要事项:与 slice()substr() 方法不同的是,substring() 不接受负的参数。

substr(start [, length])
substring(start [, end])

slice(start [, end])

substr的start也可接受负数,也表示从字符串尾部计数,这点和slice相同;但substr的length则不能小于1,否则返回空字符串


所以: 很多人认为substring是多余的:如果只知道位置,那么用slice;如果知道长度,则用substr。


2.  splice  :

       定义:强大的数组操作方法

用法 : splice( para1,para2 ) : 删除数组中任意数量的项,从para1开始的para2项。注意的是用splice删除数组中的值会直接将某几项从数组中完全删除,会导致数组length值的改变,这与delete的删除置为undefined是不一样的。

 splice( para1,para2,val1,val2… ):项数组中添加和删除项,para1表示可以添加的项数,para2表示删除的项数,后面的变量表示要添加的项的值,注 意是从para1之后开始删除和添加的。

    注意 : 参数为负数的问题,如果para1为负数,则会加上数组的长度作为para1的值,而para2为负数或0的话不会执行删除操作。

函数:split()

功能:使用一个指定的分隔符把一个字符串分割存储到数组

1
2
3
str= "jpg|bmp|gif|ico|png" ;
arr=theString.split( "|" );
//arr是一个包含字符值"jpg"、"bmp"、"gif"、"ico"和"png"的数组
split : 根据特定的字符切割字符串并且返回生成的数组。

                   例如 : str = “s-aaa-sss-eee-www”;

                            targetArr = str.slite(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]

join()
var
delimitedString=myArray.join(delimiter);
var myList= new Array( "jpg" , "bmp" , "gif" , "ico" , "png" );
var portableList=myList.join( "|" );
//结果是jpg|bmp|gif|ico|png


函数:indexOf()

功能:返回字符串中匹配子串的第一个字符的下标

1
2
3
4
5
var myString= "JavaScript" ;
var w=myString.indexOf( "v" );w will be 2
var x=myString.indexOf( "S" );x will be 4
var y=myString.indexOf( "Script" );y will also be 4
var z=myString.indexOf( "key" );z will be -1




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值