字符串
双引号""或单引号''包围的都是字符串。
创建字符串
直接用单引号或双引号包围。
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!
|