拼接字符串: concat()
或 "+"
concat()
var stringValue = "hello ";
var result = stringValue.concat("world");
alert(result); //"hello world"
alert(stringValue); //"hello"
实际上, concat() 方法可以接受任意多个参数,也就是说可以通过它拼接任意多个字符串。再看一个例子:
var stringValue = "hello ";
var result = stringValue.concat("world", "!");
alert(result); //"hello world!"
alert(stringValue); //"hello"
注:加号操作符在大多数情况下都比使用 concat()方法要简便易行(特别是在拼接多个字符串的情况下)。
三个基于子字符串创建新字符串的方法: slice() 、 substr()
和substring()
。
参数一:指定子字符串的开始位置
参数二:(在指定情况下)表示子字符串到哪里结束
若没给参数二,默认字符串的长度作为结束位置
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"
三者区别:
slice()
和substring()
的第二个参数指定的是子字符串最后一个字符后面的位置。
而 substr()
的第二个参数指定的则是返回的字符个数。
Tips若传递的参数是负值的情况下:
slice()
方法会将传入的负值与字符串的长度相加
substr()
方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为 0
substring()
方法会把所有负值参数都转换为 0。
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.substring(3, 0))
//此时会将较小的数作为开始位置,将较大的数作为结束位置
alert(stringValue.substr(3, -4)); //""
字符串切片操作
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]
步长:表示下标变化的规律。
注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。
name = 'abcdef'
print(name[0:3]) # 取 下标0~2 的字符
name = 'abcdef'
print(name[0:5]) # 取 下标为0~4 的字符
name = 'abcdef'
print(name[3:5]) # 取 下标为3、4 的字符
name = 'abcdef'
print(name[2:]) # 取 下标为2开始到最后的字符
name = 'abcdef'
print(name[1:-1]) # 取 下标为1开始到倒数第2个之间的字符
>>> a = "abcdef"
>>> a[:3]
'abc'
>>> a[::2]
'ace'
>>>a[5:1:2]
''
>>>a[1:5:2]
'bd
>>> a[::-2]
'fdb'
>>> a[5:1:-2]
'fd'