JavaScript中的String
1、基本类型String
var str ="helloworld";
要记住:保存的是Unicode字符,一旦创建便不可变
2、引用类型String
var strObj =newString("hello world");
要点:
字符方法:
alert (strObj.charAt(0));// 'h'
alert (strObj.charCodeAt(1));// 101 即 'e' 的 unicode编码
alert(strObj[1]); // 'e', ES5
字符串方法:
var str2 = strObj.concat(" ","china");// "hello world china";
alert(strObj);// "hello world";
slice() & substr() & substring()
一个参数(起始位置):
alert(strObj.slice(3));// "lo world";
alert(strObj.substring(3));// "lo world";
alert(strObj.substr());// "lo world";
两个参数(起始位置,终点位置 || 长度):
alert(strObj.slice(3,7));// "lo w"; 从下标3开始,到下标7之前
alert(strObj.substring(3,7));// "hel" ;从下标3, 到下标7之前
alert(strObj.substr(3,7)); // "lo worl" 从下标3开始,长度为7
第二个参数<0(起始位置,终点位置 || 长度 ,策略不同):
alert(strObj.slice(3,-3));// "lo wo"; 第二个参数 -3 被转换成 -3 + str.length = 8; 来对待。
alert(strObj.substring(3,-3));// "hel"; 第二个参数 -3 被转换成 0,因为 第二个参数小于第一个参数,然后它们要互换位置。
alert(strObj.substr(3,-3));// ""(空字符串),它会将第一个参数 3 + str.length ,然后将 第二个参数-3 转换成 0.
字符串位置方法(每次调用只匹配一次,函数返回匹配的位置):
alert(strObj.indexOf("o"));//4 从前往后
alert(strObj.lastIndexOf("o"));//7 从后往前
alert(strObj.indexOf("o",6));// 7 忽略位置6以前的(即使匹配)
alert(strObj.lastIndexOf("o",6));// 4 忽略位置6以后的(即使匹配)
trim()方法(删除前置和后置的空格,中间空格不删除):
var strValue =" hello world ";
alert(strValue.trim());// “hello world”
字符串大小写转换:
alert(strObj.toLowerCase());//"hello world"
alert(strObj.toUpperCase());// "HELLO WORLD";
alert(strObj.toLocaleLowerCase());// "hello world“
alert(strObj.toLocaleUpperCase());// ”HELLO WORLD“
模式匹配:
match:
var text ="cat, bat, sat, rat";
var matches = text.match(/.at/);
alert(matches.index);// 0
alert(matches[0]);// cat
alert(matches.lastIndex);// 0
search():
var pos = text.search(/at/);
alert(pos);// 1 返回第一个匹配的位置
replace();
var result1 = text.replace("at","ond");// "cond, bat, sat, rat";
注意:只替换第一个匹配的位置,所以用此方法无法消除字符串中的空格。
var result2 = text.replace(/at/g,"ond");// ”cond, bond, sond, rond“;
消除字符串的所有空格:
text.replace(/\s/g,"");//用 ”“(空字符串 )替换 所有的 空格,制表符,换行。
var a ="hellod a sad asdsa dsa das dsa dsa dsa ";
console.log(a.replace(/\s/g,""));
//hellodasadasdsadsadasdsadsadsa VM205:3var a ="hellod a sad asdsa dsa das dsa dsa dsa ";
console.log(a.replace(" ",""));
//helloda sad asdsa dsa das dsa dsa dsa
replace()方法的第二个参数也可以是一个函数,这个函数有三个参数(模式的匹配项,模式匹配项在字符串中的位置,原始字符串)
function htmlEscape(text){
return text.replace(/[<>"&]/g,function(match, pos, originalText){
switch(match){
case"<":
return"<";
case">":
return">";
case"&":
return"&";
case"\"":
return""";
}
});
}
split() ,将字符串分隔,返回分隔后组成的数组
var colorText ="red,blue,green,yellow";
var c1 = colorText.split(",");//["red","blue","green","yellow"];
var c2 = colorText.split(”,“,2);//["red","blue"]; 第二个参数返回的数组的大小。
localeCompare(),比较字符串
var strVal ="yellow";
alert(strVal.localeCompare("black"));// 1
alert(strVal.localeCompare("yellow"));// 0
alert(strVal.localeCompare("zoo"));// -1 或其他负数