知识点:字符串是基本数据类型,无论什么方法,字符串本身是不会变化的。
slice():截取字符串 (与数组的slice方法类似)
//slice(start, end) 截取子字符串
var str="hello world";
console.log(str.slice(7,10)); // 返回值是截取后的字符串:"orl"
console.log(str.slice(9,1)); // 返回值是截取后的字符串:空
console.log(str.slice(-2,1)); // 返回值是截取后的字符串:空 (-2代表倒数第二个字符)
console.log(str.slice(-2,10)); // 返回值是截取后的字符串:"l"
console.log(str); // 字符串本身保持不变:hello world
substring():截取字符串
//substring(start,end)
//负数的情况,装换为0
//会比较start和end,认为数值小的是start,数字大的是end
var str="hello world";
console.log(str.substring(7,10)); // 保持不变 // 返回值是截取后的字符串:"orl"
console.log(str.substring(-7,5)); // 相当于(0,5) // 返回值是截取后的字符串:"hello"
console.log(str.substring(-4,-7)); // 相当于(0,0) // 返回值是截取后的字符串:空
console.log(str.substring(2,-5)); // 相当于(0,2) // 返回值是截取后的字符串:"he"
console.log(str.substring(3,1)); // 相当于(1,3) // 返回值是截取后的字符串:"el"
console.log(str); // 字符串本身保持不变:"hello world"
substr():截取字符串
//substr(start,len)
//start:必须,指定子字符串的开始位置
//len:可选,表示截取的字符总数,省略是时截取至字符串的末尾
//当start为负数时,将负值与字符串的长度相加
//当len为负数时,返回空字符串
var str="hello world";
console.log(str.substr(6, 3)); // 返回值是截取后的字符串:"wor"
console.log(str.substr(-5, 4)); // 返回值是截取后的字符串:"worl"
console.log(str.substr(3, 0)); // 返回值是截取后的字符串:空
console.log(str.substr(3, -1)); // 返回值是截取后的字符串:空
console.log(str); // 字符串本身保持不变:"hello world"
split():把一个字符串分割成字符串数组 (与数组的join方法相反)
// stringObject.split(separator)
var str = "welcom-to-beijing"
var arr = str.split("-");
console.log(arr); // 返回值是转换后的数组:["welcome","to","beijing"]
console.log(str); // 字符串本身保持不变:"welcom-to-beijing"
var date = "2016/05/05";
var dateArr = date.split("/");
console.log(dateArr); // 返回值是转换后的数组:["2016", "05", "05"]
console.log(date); // 字符串本身保持不变:"2016/05/05"
replace():把字符串中的字符替换成其他字符
// stringObject.replace(regexp/substr,replacement)
var tel = "010-12345678,400-100-9098,101-87654321";
var newTel1 = tel.replace(",", " "); //替换第一个
var newTel2 = tel.replace(/,/g, " "); //替换所有
console.log(newTel1); // 返回值是替换后的字符串:"010-12345678 400-100-9098,101-87654321"
console.log(tel); // 字符串本身保持不变:"010-12345678,400-100-9098,101-87654321"
console.log(newTel2); // 返回值是替换后的字符串:"010-12345678 400-100-9098 101-87654321"
console.log(tel); // 字符串本身保持不变:"010-12345678,400-100-9098,101-87654321"
toUpperCase() , toLowerCase():大小写转换
//toUpperCase()
var str1="hello world";
console.log(str1.toUpperCase()); // 返回值是转换后的字符串:"HELLO WORLD"
console.log(str1); // 字符串本身保持不变:"hello world"
//toLowerCase()
var str2="WELCOME";
console.log(str2.toLowerCase()); // 返回值是转换后的字符串:"welcome"
console.log(str2); // 字符串本身保持不变:"WELCOME"
charAt():取得index位置的字符
//stringObject.charAt(index)
var str = "hello word";
console.log(str.charAt(0)); // 返回index位置的字符:'h'
charCodeAt():取得index位置的字符编码
//stringObject.charCodeAt(index)
var str = "hello word";
console.log(str.charCodeAt(4)); // 返回index位置字符的字符编码:111
indexOf():取得子字符串的下标
var email = "marryoo@sohu.com";
console.log(email.indexOf("o")); // 返回子字符串的位置:5
console.log(email.indexOf("x")); // 返回子字符串的位置:-1(没有找到)
// 以下两种判断方式是一样的
if(email.indexOf("o") !== -1){
console.log('存在o');
}
// ~x 的意思是 -(x + 1)
if(~email.indexOf("o")){
console.log('存在o');
}
lastIndexOf():取得子字符串的下标
var email = "marryoo@sohu.com";
console.log(email.lastIndexOf("o")); // 返回子字符串的位置:14