1、基本类型String
var str = "helloworld";
要记住:保存的是Unicode字符,一旦创建便不可变
2、引用类型String
var strObj = new String("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 或其他负数