字符串(string)是js中的一种内置对象,既然是对象,那必然会有属性和方法,下面谈一下字符串有哪些操作(方法)。
在此之前先了解一下,如何将一个数字型转换为字符串,有以下几种形式:
0.将数字转换为字符串
var num=123;//定义一个数值类型变量num
var str = num +"";//方式一
var str1 = num.toString();//方式二,返回10进制形式的字符串
var str2 = num.toString(2);//方式同上,只不过括号中2的意思为返回二进制形式的字符串
var str3 = String(num);//方式三
接下来,我们可以继续了解字符串的属性和方法:如下:
1.根据字符位置返回字符:
有charAt()
和charCodeAt()
;
//charAt(num)---用于返回在相应字符串中第num个的字符
//charCodeAt(num)----返回在字符串num处对应字符的Unicode编码
var s ="abcd";
console.log(s.charAt(3));//输出结果是“d”;
console.log(charCodeAt(3));//输出结果是100;是"d"的unicode编码
2.根据字符返回位置
有lastIndexOf()
和 indexOf()
//indexOf() 它是从字符串前面开始数(从左边开始数), 而且只找**第一个**, 然后返回该字符的位置(索引号), 索引号都是从0开始的。 返回的是个数值。
// lastIndexOf() 从后面开始数,返回的值还是从左边开始 数的 索引号 。
var txt = "abcdef";
alert(txt.indexOf(“d”)) // 结果就是 3
----------
var txt = "abcdef";
alert(txt.lastIndexOf(“d”)); //结果是 3
var txt1 = "abcdedf";
alert(txt.lastIndexOf(“d”)); //返回结果是5,请注意:lastIndexOf()是从后面开始找,但是返回值是从前面开始数
3.合并字符串:
有concat()
,连接字符串的意思,注意这个方法数组也有
var txt1 = "abc";
var txt2 = "123";
console.log(txt1.concat(txt2)); //输出结果是“abc123”; 将两个字符串直接合并成一个
4.截取字符串
有slice()
和substr()
这两种都是截取字符串的操作方法:
slice(“取字符串的起始位置”, [结束位置]) ; [] 可选的
起始位置一定要有 但 结束位置可以省略
var txt = "abcdefgh";
console.log(txt.slice(3)) ; //结果是 "defgh";从 txt 里面字符的 第 3(索引号)个开始取 , 一直取到最后一个
console.log(txt.slice(3,6));
//结果是:"def";结果可知,从txt第3(索引号)个字符开始取,一直到索引号为6的字符为止,但不包括第6(索引号)个字符
console.log(txt.slice(-1));//结果是"h",注意: 起始位置可以是负数,如果是负数,则是从右边往左边开始取。
substr(起始位置,[取的个数]) ;[] 可选的
起始位置一定要有 但 结束位置可以省略
不写取的个数, 默认从起始位置一直取到最后 。
取的个数: 是指从起始位置开始,往后面数几个。
substring 同slice 一样的 但是有一点不同
substring(3,6)
substring 始终会把 小的值作为 起始位置 大的值作为结束位置
例如: substring(6,3) 实际中 自动变成 substring(3,6);
var txt = “abcdefghijk”;
console.log(txt.substr(3,4)); //结果是“defg”;从txt第三个字符开始(包括第三个),一直取4个字符
//注意:substr(-1) 这种写法 ie678会 报错, 尽量少用
5.大小写转换
有toUpperCase()
,将字符串全部字符转换为大写
与此相反还有toLowerCase()
,将字符串全部字符转换为小写
注意:上面两个方法括号中都不需要传递参数
var s ="aBc";
console.log(s.toUpperCase()); //结果是“ABC”,
console.log(s.toLowerCase()) ;//结果是“abc”。