js中关于字符串的一些细节知识
字符串:在js中由单引号或者双引号包起来的都是字符串,由零到多个字符组成。
var str='zhufengpeixun';
str.length ->13 字符串长度
str[0] ->"z" 取第一个字符
str[str.length-1] ->"n" 取最后一个字符
str[100] ->undefined
字符串中每一个字符都有一个自己对应位置的索引,也有类似于数组一样的length代表自己的长度
typeof str
=>"string"
new String(str)
=>String {"zhufengpeixun"}0: "z"1: "h"2: "u"3: "f"4: "e"5: "n"6: "g"7: "p"8: "e"9: "i"10: "x"11: "u"12: "n"length: 13__proto__: String[[PrimitiveValue]]: "zhufengpeixun"
**`列出字符串中的每一项`**
for(var i=0;i<str.length;i++){
console.log(str[i]);
}
例子:
=>var str='zhufengpeixun';
for(var i=0;i<str.length;i++){
console.log(str[i]);
}
VM519:3 z
VM519:3 h
VM519:3 u
VM519:3 f
VM519:3 e
VM519:3 n
VM519:3 g
VM519:3 p
VM519:3 e
VM519:3 i
VM519:3 x
VM519:3 u
VM519:3 n
关于字符串中常用的方法
字符串都是基本数据类型,字符串的每一次操作都是值直接进行操作,不像数组一样是基于空间地址来操作,所以不存在原有字符串是否改变,字符串肯定不变。
charAt/charCodeAt
作用:charAt根据索引获取指定位置的字符,charCodeAt不仅仅获取字符,他获取字符对应的Unicode编码值(ASC II码值)
参数:索引
返回值:字符对应的编码
var str='zhufengpeixun';
undefined
str.charAt(0)
"z"
str[0]
"z"
str[100] //[x]不存在这个索引时,返回undefined
undefined
str.charAt(100) //运行机制和对象是一样的,charAt(x)不存在这个索引时,返回空字符""
""
str.charCodeAt(0) //这个索引存在时,输出这个值的字符编码
122
str.charCodeAt(100) //运行机制和对象是一样的,charAt(x)不存在这个索引时,返回空字符NaN
NaN
indexOf/lastIndexOf
基于这两个方法。可以获取第一次或者最后一次出现位置索引,有这个字符,返回大于0的索引,不包含这个字符,返回结果是-1
基于这两个,验证字符串中是否包含某个字符。
var str='zhufengpeixun';
if(str.indexOf('*')>-1){
//条件成立说明包含*符号
}
slice
作用:str . slice( n , m) 从索引n开始找到索引为m处(不包含m),把找到的字符当做新字符串返回
var str='zhufengpeixun';
str.slice(2,3)
"u"
str.slice(2,7)
"ufeng"
str.slice(2)
"ufengpeixun"
str.slice()
"zhufengpeixun"
str.slice(-3,-1) //-3代表从字符串末尾开始,向前3位,-3+(-1)=-2,-2代表取2位,从-3位开始向后取2位
"xu"
//和数组中的slice操作是一样的
1.不写m是查找到字符串的末尾
2.n/m都不写是字符串的克隆
3.支持负数索引:用字符串的总长度+负数索引运算
substring
和slice语法一摸一样
唯一的区别是:slice支持负数索引,而substring不支持负数索引
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
substr
也是字符串截取方法,用法是:str.substr(n,m), 从索引n开始截取n个字符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
toUpperCase/toLowerCase
实现大小写字母的转换,toUpperCase小写转大写,toLowerCase大写转换小写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
splite
和数组中的join相对应,数组中的join是把数组中一项按照指定的连接字符串,而split是把字符串按照指定的分割符,拆分成数组中的每一项。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
replace
作用:替换字符串中原有字符
参数:原有字符,要替换新字符
返回:替换后的字符串
//=>把“qianduan”换“前端”
var str = 'qianduan2019qianduan2020';
str = str.replace('qianduan','前端')
=>"前端2019qianduan2020"
//=>在不使用正则的情况下,只能替换一个
str = str.replace('qianduan','前端')
"前端2019前端2020"
//=========正则方法一次性替换
var str = 'qianduan2019qianduan2020';
str = str.replace(/qianduan/g,'前端')
=>"前端2019前端2020"
字符串有很多方法:扩展 String.prototype
- includes
- localeCompare
- search
- trim
...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。