js字符串操作汇总

字符串的方法

注: 字符串的所有方法都不会修改字符串本身

1、操作方法

slice(参1,参2) 从start开始,截取到end位置,end取不到;参1:开始的位置 ;参2:结束的位置[start,end).遇到负数把length和负数相加
substring() 从start开始,截取到end位置,end取不到;遇到负数,把负数变为0,两个参数交换位置
substr() 从参1,start开始,截取参2,length个字符
charAt() 获取指定位置处的字符
str[0]; 和charAt 等效,IE8+支持
trim() 只能去除字符串前后的空白
split() 把字符串切割成字符数组
大小写转换:
to(Locale)UpperCase() 转换大写
to(Locale)LowerCase() 转换小写

2、查找字符串中所有的o 的位置

1
2
3
4
5
6
var str= "dmsosekkdsoosns";
varindex= -1;
do{
index = str.indexOf("o",index + 1);
console.log(index);
}while(index != -1);

3、将字符串中所有的o替换成!

1
2
3
4
do{
str = str.replace("o","!");
}while(str.indexOf("o")!= -1);
console.log(str);

4、统计字符串中每个字符出现的次数

 

1
2
3
4
5
6
7
8
9
10
11
12
 var o = {};
 for (var i = 0; i < str.length; i ++) {
 var item = str.charAt(i);
 if (o[item]) {
 o[item] ++; //如果以前有了值,让这个值加一
 }else {
 o[item] = 1; //如果之前没有,现在进来就有了一次了
 }
 }
 for (var key in o) {
 console.log(key+"出现了" + o[key] + "次");
 }

5、去掉字符串中所有的空格

 

1
2
3
4
 var str = " aaa di djsoa jdi wd ";
 str = str.trim(); //trim可以去除两边的空格
 var arr = str.split(" ");//按照空格分隔
 str = arr.join(" ");

6、replaceClassName: 替换类名,封装函数

1
2
3
4
5
6
7
8
9
10
  function replaceClassName(element, oldStr, newStr) {
 //把类名这个字符串按照空格分隔,把里面每一个类名做判断
 var arr = element.className.split(" ");
 for (var i = 0; i < arr.length; i ++) {
 if (arr[i] === oldStr) {
 arr[i] = newStr;
 }
 }
 element.className = arr.join (" ");
 }

7、getElementsByClassName

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 function getElementsByClassName(element,className) {
 if(element.getElementsByClassName) {
 return element.getElementsByClassName(className);
 }else{
 var filterArr = [];
 var elements = element.getElementsByTagName("*");
 for (var i = 0; i < elements.length; i ++) {
 var nameArr = elements[i].className.split(" ");
 for (var j =0; j < nameArr.length; j ++) {
 if (nameArr[j] === className) {
 filterArr.push(elements[i]);
 break;
 }
 }
 }
 return filterArr;}}