目录
常用String对象方法 :
案例练习 :
1.查找字符是否存在,替换字符,截取字符,统计出现次数最多的字符以及出现次数
2. 去除字符串中的重复字符
3.编写函数翻转字符串(方法和翻转数组一样)
常用String对象方法 :
length 属性返回字符串的长度
var txt = "ABCDEF";
var sln = txt.length;
indexOf() 方法返回字符串中指定文本首次出现的索引(索引号以0开始),查找的字符串不存在时返回值 -1
var str = "Countless meet, waiting for the end";
var ch = str.indexOf("t");
var pos = str.indexOf("meet"); // 查找一串字符时返回首个字符索引
ch = str.indexOf("x"); // 当查找的字符不存在时返回值为 -1
ch = str.indexOf("t",5); // 第二个参数为查询的起始索引(从第几位开始查询)
三种提取部分字符串的方法:
- slice(start, end)
- substring(start, end)
- substr(start, length)
slice和substring都是截取从start开始到end结束的字符串,且不包括end索引的字符。个人substr使用的最多,从start(开始索引)截取length(字符串长度)。
var str = "Apple,Banana,Orange";
var res = str.substr(6,6); // res结果是Banana
//如果只写一个参数,从索引号开始截取剩余字符串
res = str.substr(6); //结果是 Banana,Orange
replace() 方法用另一个值替换在字符串中指定的值,replace() 默认只替换首个匹配(注意/……/g,i 中的字符串不要引号)
var str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");
str = "Please visit Microsoft and Microsoft!";
n = str.replace(/Microsoft/g, "W3School"); // /……/g 全局匹配
str = "Please visit Microsoft!";
n = str.replace(/MICROSOFT/i, "W3School"); // /……/i 不区分大小写匹配
concat() 连接两个或多个字符串(和加运算符效果一样)
var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ",text2);
trim() 方法删除字符串两端的空白符
var str = " Hello World! ";
alert(str.trim());
charAt() 方法返回字符串中指定下标(位置)的字符串
var str = "HELLO WORLD";
str.charAt(0); // 返回 H
// charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码
str = "HELLO WORLD";
str.charCodeAt(0);
split() 方法将字符串转换为数组
var txt = "a,b,c,d,e"; // 字符串
txt.split(","); // 用逗号分隔 ["a","b","c","d","e"]
txt.split(); //将整个字符串作为一位数组 ["a,b,c,d,e"] length为1
txt.split(""); //以空字符分割,每一个字符都将成为数组中的一位元素
// 结果是['a', ',', 'b', ',', 'c', ',', 'd', ',', 'e']
案例练习 :
1.查找字符是否存在,替换字符,截取字符,统计出现次数最多的字符以及出现次数
var str = 'abaasdffggghhjjkkgfddsssss3444343';
var len = str.length; //字符串的长度
// 取出指定位置字符 0,3,5,9
document.write(str.charAt(0));
document.write(str.charAt(3)) ;
document.write(str.charAt(5)) ;
document.write(str.charAt(9)) ;
// 将str字符串中每个字符转为对象o中的属性
var o = {};
for(var i = 0; i < str.length; i++){
var chars = str.charAt(i);
if(o[chars]){
o[chars]++;
} else {
o[chars] = 1;
}
}
console.log(o);
// 查找指定字符是否在以上字符串中存在,(i,c,b)
if(o['i']) alert('存在字符i'); else alert('不存在字符i');
if(o['c']) alert('存在字符c'); else alert('不存在字符c');
if(o['b']) alert('存在字符b'); else alert('不存在字符b');
// 替换字符串:g替换为22,ss替换为b
var newStr = str.replace('g','22');
while(newStr.indexOf('g') != -1 || newStr.indexOf('ss') != -1){
newStr = newStr.replace('g','22');
newStr = newStr.replace('ss','b');
}
console.log(newStr);
// 截取指定位置的字符串,1-5的字符串
console.log(str.substr(1,5));
// 找出出现次数最多的字符
var max = 0;
var ch = '';
for(var k in o) {
if(max < o[k]) {
max = o[k];
ch = k;
}
}
console.log(ch+'出现次数最多共'+max+'次');
2. 去除字符串中的重复字符
var str = "abcdeereeryhhssqqq";
function unique(str) {
var newStr = '';
for(var i = 0; i < str.length; i++) {
if(newStr.indexOf(str.charAt(i)) == -1){
newStr = newStr.concat(str.charAt(i));
//也可以用 += 运算符
// newStr[newStr.length] = str.charAt(i); 此方法错误
}
}
return newStr;
}
console.log(unique(str));
3.编写函数翻转字符串(方法和翻转数组一样)
function reStr(str) {
var newStr = '';
for(var i = str.length-1; i >= 0; i--) {
newStr = newStr.concat(str.charAt(i));
}
return newStr;
}
var str = '我为人人';
console.log(reStr(str));