String既是基本类型数据又是基本包装类型数据,所以初始化它的方法有:
1)var str = 'abcdefg';
2)var str = new String('abcdefg');
可以通过它的length属性知道字符串长度。
常用方法:
(1)toString() 值(除undefined,null)转换字符串
格式:str.toString()
返回字符串
var num = 123; var arr = [1,2,'s',3,true,false]; function str(){}; var obj={text:'前端'}; num.toString();//'123' arr.toString();//'1,2,s,3,true,false' str.toString();//'function str(){}' obj.toString();//'[object object]'
(2)String() 任意值转换字符串
格式:String(str)
返回字符串
String(undefined);//'undefined' String(null);//'null'
ps.使用顺序:如果该值有toString()方法则先用该方法,没有就用String()方法。
(3)charAt() 获取单个字符串
格式:str.charAt(num) num为字符串下标,num>=0
返回对应下标的字符串
var str = 'abcdefc';
var str1 = str.charAt(3);//返回 d
var str2 = str[3];//返回 d
(4)concat() 拼接字符串
格式:str.concat(str1,str2,...)
返回新拼接字符串
var str = 'hello '; var str1 = str.concat('world');//'hello world'
ps.这个方法很少用,通常用“+”来连接。被连接的值不是字符串的话,会被隐式转换成字符串类型的值。
(5)slice()、substr()、substring()截取字符串
格式:str.slice(初始位置,终止位置) 如果传入的参数为负数,则字符串下标 = 字符串的长度+负数
str.substring(初始位置,终止位置)
str.substr(初始位置,返回字符串个数)
var str = 'abcdefggfec'; var strSlice1 = str.slice(3);//'defggfec' var strSlice2 = str.slice(3,5);//'de' var strSlice3 = str.slice(-5);//6 'ggfec'
var strSlice4 = str.slice(-5,8)//6,8 'gg'
var strSlice5 = str.slice(-5,-3)//6,8 'gg'
var str = 'abcdefggfec'; var strSubstring1 = str.substring(3);//'defggfec' var strSubstring2 = str.substring(3,5);//'de' var strSubstring3 = str.substring(-5);//abcdefggfec 遇到负数,转为0 返回所有字符串
var strSubstring5= str.substring(-5,8)//0,8 'abcdefgg'
var strSubstring4 = str.substring(-5,-3)// 空白字符串
var str = 'abcdefggfec'; var strSubstr1 = str.substr(3);//'defggfec' var strSubstr2 = str.substr(3,5);//'defgg' var strSubstr3 = str.substr(-5);//6 'ggfec'
var strSubstr4 = str.substr(-5,3)//6 'ggf' 从下标6开始返回3个字符串
var strSubstr5 = str.substr(-5,-3)// 空白字符串
(6)indexOf()与lastIndexOf() 查找字符串
格式:str.indexOf('e',num) str.lastIndexOf('e',num) num是字符串查找起始位置(可传参数)
返回字符串所在位置
区别:indexOf()从字符串开头往后找,lastIndexOf()是从字符串末尾往前找
var str = 'abcdefcb'; str.indexOf('c',3);//6 str.lastIndexOf('c',3);//2
(7)trim() 清除字符串两端空格
格式:str.trim()
返回新的字符串
var str = ' hello world '; str.trim();//'hello world';
(8)字符串大小转换
常规方法:(转小写)toLowerCase(),(转大写)toUpperCase()
针对特定地区:(转小写)toLocaleLowerCase(),(转大写)toLocaleUpperCase()
格式:str.toLowerCase() ...
ps.常规和特定地区的方法实现的效果基本一致,部分地区会有差别。比较建议用特定地区方法
var str = 'hello world'; var STR = 'HELLO WORLD'; SRT.toLowerCase();//hello world SRT.toLocaleLowerCase();//hello world str.toUpperCase();//'HELLO WORLD'; str.toLocaleUpperCase();//'HELLO WORLD';
(9)字符串匹配
match()
格式:str.match(正则表达式 || RegExp对象)
返回一个数组
var text ='cat bat sat fat'; var p =/.at/; var matches = text.match(p) matches[0];//cat
var p1 =/.at/g;
var matches1 = text.match(p1);//['cat','bat','sat','fat'];
replace() 替换字符串
格式:str.replace(字符串 || RegExp对象,字符串 || 函数)
返回替换后的字符串
ps.如果第一个参数是字符串,那么只能替换查找到的第一个字符串;如果想替换所有的字符串,则需要用正则表达式
var str = 'bat cat sat fat'; var result = str.replace(/at/g,'ond');//'bond,cond,sond,fond'; var result = str.replace(/(.at)/,'word($1)');//'word(bat) cat sat fat' var result = str.replace('bat','aat');//'aat cat sat fat'
split() 分隔字符串
格式:str.split(分隔符)
返回一个新数组
var colorText = 'red,blue,green,yellow'; var colors1 = str.split(/[^\,]+/);//["", ",", ",", ",", ""] 使用正则表达式取得包含逗号字符的数组 var colors2 = str.split(',');//["red", "blue", "green", "yellow"]