// 1、字面量创建(推荐)(成对的单双引号引着的就是字符串) var str1 = '花自飘零水自流'; console.log(str1); console.log(typeof str1); // string // 2、函数创建 var str2 = String('一种相思,两处闲愁'); console.log(str2); console.log(typeof str2); // string // 3、构造函数创建 var str3 = new String('我不一样'); console.log(str3); console.log(typeof str3); // object
-
格式:字符串.charCodeAt(下标);
-
作用:返回对应下标字符的Unicode编码,值是 0 - 65535 之间的整数
var str = 'hello'; console.log(str.charAt(1)); // e console.log(str[1]); // e IE7及以下不支持
3、charCodeAt
-
格式:字符串.charCodeAt(下标);
-
作用:返回对应下标字符的Unicode编码,值是 0 - 65535 之间的整数
var str = '0123456789'; console.log(str.charCodeAt(0)); // 0--48 console.log(str.charCodeAt(str.length - 1)); // 9--57 var str2 = 'abcd...z'; console.log(str2.charCodeAt(0)); // a--97 console.log(str2.charCodeAt(str2.length - 1)); // z--122 var str3 = 'ABCD...Z'; console.log(str3.charCodeAt(0)); // A--65 console.log(str3.charCodeAt(str3.length - 1)); // Z--90 // ------------------------------------ console.log(('小').charCodeAt(0)); // 23567 console.log(('姐').charCodeAt(0)); // 22992 console.log(('姐').charCodeAt(0)); // 22992 console.log(String.fromCharCode(23567, 22992, 22992)); // 小姐姐
4、indexOf和lastIndexOf
主要作用:检查这个字符,在这个字符串中是否存在
-
格式:字符串.indexOf(要查找的字符, [起始位置]);
-
作用:查找字符在这个字符串中首次出现的位置,如果找不到,返回-1
-
格式:字符串.lastIndexOf(要查找的字符, [起始位置]);
-
从右向左查找
var str = 'abcdaaefg'; console.log(str.indexOf('a')); // 0 console.log(str.indexOf('cd')); // 2 console.log(str.indexOf('a', 1)); // 4 console.log(str.indexOf('a', 6)); // -1 // --------------------------- console.log(str.lastIndexOf('a')); // 5 console.log(str.lastIndexOf('a', 3)); // 0
案例:字符串去重
var str = 'abcabc'; // 封装一个方法,用于去掉重复的字符,返回abc console.log(fn(str)); // abc function fn(str) { var newStr = ''; // 仓库,存储去重以后的字符串 for (var i = 0; i < str.length; i++) { // str[i]即每一个字符 if (newStr.indexOf(str[i]) === -1) { // 如果返回-1,则证明仓库里面没有,没有则添加进来 newStr += str[i]; } } return newStr; }
5、字符串截取
var str = 'abcdefg';
-
slice
// 字符串.slice(起始下标, 结束下标); 标准方法 console.log(str.slice()); // abcdefg 没有参数,返回全部 console.log(str.slice(2)); // cdefg 有一个参数,从第一个参数处起,一直到最后 console.log(str.slice(2, 6)); // cdef 有两个参数,从第一个参数处起,到第二个参数处止,不包括第二个参数 console.log(str.slice(6, 2)); // '' 第二个参数比第一个小(非负数),返回空字符串 console.log(str.slice(2, -2)); // cde 负数同长度相加
-
substring
// 字符串.substring(起始下标, 结束下标); console.log(str.substring()); // abcdefg 没有参数,返回全部 console.log(str.substring(2)); // cdefg 有一个参数,从第一个参数处起,一直到最后 console.log(str.substring(2, 6)); // cdef 有两个参数,从第一个参数处起,到第二个参数处止,不包括第二个参数 console.log(str.substring(6, 2)); // cdef 第二个参数比第一个小(非负数),则两参数交换位置 console.log(str.substring(2, -2)); // ab 负数当作0
-
substr
// 字符串.substr(起始下标, 截取的个数); console.log(str.substr()); // abcdefg 没有参数,返回全部 console.log(str.substr(2)); // cdefg 有一个参数,从第一个参数处起,一直到最后 console.log(str.substr(2, 2)); // cd console.log(str.substr(2, -2)); // '' 负数不截取
案例:结合moment.js,通过身份证号获取某个人的年龄
6、转大小写
-
字符串.toUpperCase() 转大写
-
字符串.toLowerCase() 转小写
只能针对英文
var str = 'abcde'; var s = str.toUpperCase(); // 转大写 console.log(s); // ABCDE console.log(s.toLowerCase()); // abcde 转小写
7、拆分和拼接
-
split
-
格式:字符串.split(参数)
-
作用:将字符串以参数拆分成数组
-
var str = '2020-10-10'; var arr = str.split('-'); console.log(arr); // [ "2020", "10", "10" ] console.log(str.split()); // [ "2020-10-10" ] console.log(str.split('')); // [ "2", "0", "2", "0", "-", "1", "0", "-", "1", "0" ] console.log(str.split('0')); // [ "2", "2", "-1", "-1", "" ]
-
join
-
格式:数组.join(参数)
-
作用:将数组用参数拼接成字符串
-
var arr = ["2020", "10", "10"]; console.log(arr.join('-')); // 2020-10-10 console.log(arr.join()); // 2020,10,10 console.log(arr.join('')); // 20201010
8、replace
-
字符串.replace(被替换的字符, 新字符);
var str = '王小二说:老王是隔壁的'; var s = str.replace('王', '李'); console.log(s); // 李小二说:老王是隔壁的
9、trim
-
字符串.trim() 去除字符串左右空格(IE8及以下不支持)(正则)
var str = ' 小王说 '; console.log(str); console.log(str.trim());