携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情
访问指定位置的字符
| 方法 | 解释说明 |
|---|---|
charAt() | 返回指定位置的字符 |
str[] | 返回指定位置的字符 |
charCodeAt() | 返回指定位置的字符的Unicode编码 |
注意:这里charAt()和 str[]两个方法效果是一样的,区别不大
如:
charAt()和str[]
var str = 'abcdefghijk';
console.log(str.charAt(3));//d
console.log(str[3]);//d
//依次打印所有的字符
//charAt()方法
for (var i = 0; i < str.length; i++) {
console.log(str.charAt(i));
}
//str[]方法
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
这里有个小细节,我们使用charAt()方法时,如果没有在字符串中找到想要的字符,那么该方法便会返回一个空字符串,但是我们使用str()方法也没有找到想要的字符,那么返回的便是undefined
charCodeAt()
这个方法可以返回字符串的Unicode编码,而在实际开发中,通常用这个方法来判断用户按下的是哪个键
var str = 'abcdefghijk';
console.log(str.charCodeAt(3));//100
console.log(str.charCodeAt(7));//104
这里给一个思考题,就是如何通过charCodeAt()方法来判断用户按下的是否是英文? 提示:英文字符的Unicode编码在0~127之间,其他均为非英文,可以用if语句实现。
字符串切片
| 方法 | 解释说明 |
|---|---|
slice() | 返回截取指定的字符串 |
substring() | 返回截取指定的字符串 |
substr() | 返回截取指定的字符串(参数不同) |
slice()
字符串切片一般都是传两个参数,一个是开始索引,另一个是结束索引,slice()方法截取的字符串左闭右开
如:
var str = 'abcdefghijk';
console.log(str.slice(3, 6));//def
console.log(str.slice(3));//defghijk
console.log(str.slice(-3));//ijk
console.log(str.slice(3, -3));//defgh
console.log(str.slice(6, 3));//空字符串
console.log(str.slice(3, 3));//空字符串
console.log(str.slice(-3, 3));//空字符串
需要注意的点:
- slice()方法截取的片段是左闭右开
- 只传一个参数的时候,若该参数是正数,则从该下标起(包括该下标所对应的字符)一直截取到最后,若为负数,则只截取该字符串最后负数个的片段,比如说-3,那么就截取该字符串最后三个字符ijk。
- 传两个参数时,若两个参数均为正数,则左闭右开,若前面的参数为正,后面的为负,则返回前面参数对应下标位置的字符到该字符串末尾第负数个(不包括第负数个字符)之间的内容,如
console.log(str.slice(3, -3));//defgh - 返回为空的三种情况
- 两个参数均为正且第一个参数大于第二个参数
- 前面的参数为负,后面的参数为正
- 两个参数相同