字符串
双引号""或单引号''包围的都是字符串。
创建字符串
直接用单引号或双引号包围。
var str1= "我的过去" ;
console.log( typeof str1) //string
var str2= '我的过去' ;
console.log( typeof str2) //string
var str3= '' ;
console.log( typeof str3) //string
var str4= "[1,2,3,4]" ;
console.log( typeof str4) //string
|
字符串长度 .length
字符串的 length 是不能修改的,但数组的能修改
var str= "abcd" ;
console.log(str.length) //4 字符串长度
var str2= "我的过去" ;
console.log(str2.length) //4 字符串长度,中文的也是4,并不占两个字符长度
str2.length=5
console.log(str2.length) //4 字符串的 length 是不能修改的,但数组的能修改
|
获取指定位置的字符 charAt()
括号里需要传入要获取字符的下标,从0到str.length-1。或不在这个范围,返回空。
var str= "我的过去" ;
console.log(str[0]) //我
console.log(str.charAt(1)) //的
console.log(str.charAt(9)) //返回空
|
返回字符的十进制 Unicode 编码 charCodeAt()
括号里输入要处理的字符串索引(下标),返回的是十进制 unicode 哟。
a-z 97-122
A-Z 65-90
0-9 48-57
空格 32
回车 12
左 37
上 38
右 39
下 40
var str= "daysme" ;
console.log(str.charCodeAt(0)) //返回100 , d 字母的 十进制 unicode 码是 100 。
|
把 unicode 编码转为字符 string.formCharCode()
可以输入多个值。
console.log(String.fromCharCode(100)) //d
console.log(String.fromCharCode(25105,30340,36807,21435)) //我的过去
|
从头开始检索指定字符串 indexOf()
第一个参数是要查找的相应字符;
第二个参数是表示要查找的开始位置(包含输入的位置)。
如果没有传入第二个参数,默认从头开始找。
找到时返回找到字符的下标,找不到返回-1。
var str= "我的过去,我的过去,我的过去"
console.log(str.indexOf( "过" )) //2
console.log(str.indexOf( "过去" )) //2 ,也是2,因为它找的是一个整体
console.log(str.indexOf( "我" )) //0 ,不指定开始位置时从0开始找
console.log(str.indexOf( "我" ,4)) //5 ,从第4个位置开始找“我”,找到的下标是5
console.log(str.indexOf( "我" ,5)) //5 ,从第5个位置开始找“我”,也包含位置5
console.log(str.indexOf( "你" )) //-1 ,找不到即返回 -1
|
从后面开始检索指定字符串 lastIndexOf()
与 indexOf() 相同,但他是从后面开始查找。返回一个指定字符最后出现的位置。
var str= "我的过去,我的过去"
console.log(str.lastIndexOf( "我" )) // 5 ,从后往前检索,为什么结果是 5 不是 3 不是 4 ?
//因为返回到的是字符下标,下标都是从左到右 0 开始的。
|
截取字符串 substring(start,end)
start 开始位置(包含)
end 结束位置(不包含)。
返回一个新的字符串。
注意: substring 的 strong 并不写成大写的 Strong 。
参数不能是负值。
var str= "我的过去"
console.log(str.substring(0)) //我的过去
console.log(str.substring(0,2)) //我的
|
截取字符串 slice()
传入的参数也是开始位置和结束位置。
与 substring 的不同是 slice 可以是负值。
如果为负值时把最后一个作为开始。
比如 -1 指字符串的最后一个字符。
如果参数错误,返回空。
var str= "我的过去"
console.log(str.slice(0)) //我的过去
console.log(str.slice(0,2)) //我的
console.log(str.slice(-3,-1)) //的过
console.log(str.slice(-3,0)) //返回空,错误。
|
分割字符串 split()
参数1表示开始分割的标签符;
参数2表示允许分割的最大长度,一般不设置。
var str= "a/b/c/d/e/f" ;
console.log(str.split( "/" )); //["a", "b", "c", "d", "e", "f"]
var str= "a/b/c/d/e/f" ;
console.log(str.split( "b" )); //["a/", "/c/d/e/f"]
var str= "a/b/c/d/e/f" ;
console.log(str.split()); //["a/b/c/d/e/f"] 整个转为数组
console.log(str.split( "我的过去" )); //["a/b/c/d/e/f"] 同上,不能以传入的参数分割时,以忽略参数处理,整个转为数组
console.log(str.split( "" )); //["a", "/", "b", "/", "c", "/", "d", "/", "e", "/", "f"] 每项都分开了
|
字符串颠倒
// 把字符串颠倒 "abcdef" -> "fedcba"
// 一
var str= "abcdef" ;
var str2= "" ;
for (i=0;i<str.length;i++){
str2+=str[str.length-i-1];
}
console.log(str2)
// 二
console.log(str.split( "" ).reverse().join( "" ));
|
转换为大写 toUpperCase()
var str= "Hello World!"
console.log(str.toUpperCase()); //HELLO WORLD!
|
转换为小写 toLowerCase()
var str= "Hello World!"
console.log(str.toLowerCase()); //hello world!
|