哆啦A梦百宝袋之JavaScript 常用字符串方法


引言

     在学习和工作的过程中字符串的使用很多,频繁性的使用就要求我们要记住这些,接下来就是描述常用的字符串方法。


一、字符串string是什么?

JavaScript的字符串是用’ '或" "包起来的字符。

字符串之间使用 + 号进行拼接。

  • 创建字符串
    1.字面量字符串
    var str1= '123'; //常用此方法
    2.构造函数字符串
    var str2 = new String('123') //通过构造函数创建一个字符串对象,值保存在堆中
  • 字符串属性
    length-属性返回字符串的长度(字符的个数)
    str1.length; // 3
    我们也可以通过索引访问字符串,比如:str1[0]; //1   str1["0"] //1

二、ES5字符串方法

1.charAt();

通过索引获取对应字符

var str = "abcdef";
console.log(str.charAt(2)); //c  console.log(str[2]); 两种写法都可以

2.charCodeAt();

通过索引获取对应字符的unicode码值

var str = "abcdef";
console.log(str.charCodeAt(3));  //100
console.log(str.charCodeAt(10)); //不存在这个字符返回NaN

3.String.fromCharCode(unicode);

根据unicode码获取对应字符

console.log(String.fromCharCode(360001));  //繁

4.substr();

substr(); 从下标位置开始向后截取所有字符返回
substr(index,num); 从index位置开始向后截取num个字符返回
str.substr(); 截取原字符串的所有

console.log(String.fromCharCode(360001));  //繁

5.substring();

str.substring(); 截取原字符串所有
str.substring(index); 从index位置开始向后截取到end-1的字符串返回
str.substring(start,end); end小于start,end为开始下标,start为结束下标 (含头不含尾)

 var str = "abcdef";
  console.log(str.substring());  //abcdef
  console.log(str.substring(3)) ; //def
  console.log(str.substring(1, 3));  //bc
  console.log(str.substring(-3))  //abcdef   索引为负数,转换为0
  console.log(str.substring(5, 2)) //cde  end小于start,end为开始下标,start为结束下标
  console.log(str.substring(2, -5))  //ab

6.split();

str.split(); 整个字符串作为一个数组元素返回
str.split(""); 第一个字符都作为数组的元素返回
str.split(“ch”);以ch对字符串进行拆分,如果在字符串中存在这个ch, 根据ch拆分出来的字符串作为数组元素返回

var str = "abcdef";
 console.log(str.split());  // [abcdef] 
 console.log(str.split(""));  // [a,b,c,d,e,f]
 console.log(str.split("c")); // [ab,def]
var str = "ab cd ef";
 console.log(str.split(" ")); //[ab,cd,ef]
 console.log(str.split(""));   //[a,b, ,c,d, ,e,f]

7.replace();

替换

  var str = "你好啊,你在tm做什么呢,有tm时间吗?";
   console.log(str.replace("tm", "**"));//只能替换从左到右查找到的第一个
   console.log(str.split("tm").join("**"));//全局替换
   console.log(str.replace(/tm/g, "**"));

8.toLowerCase();

大写转小写

var str = "ABCDEF";
 console.log(str.toLowerCase()); //abcdef

9.toUpperCase();

小写转大写

 var str = "abcdef";
        console.log(str.toUpperCase()); //ABCDEF

10.trim();

str.trim(); 去掉前后空格 es5 ie8不支持

var str = " abc ";
console.log(str.trim());      //abc 

11.indexOf();

返回字符串中子串第一处出现的索引值,没有匹配返回-1

var str = "abcdef";
 console.log(str.indexOf('a'));//0
 console.log(str.indexOf('bcd'));//1
 console.log(str.indexOf('g'));//-1

12. lastIndexOf();

返回字符串中子串最后出现的索引值,没有匹配返回-1

 var str = "abcdefabcdef";
 console.log(str.lastIndexOf('a'));//6
 console.log(str.lastIndexOf('g'));//-1

13.slice();

从已有字符串中提取部分字符,返回新的字符串

var str = "abcdef";
 //slice()返回的子串包括start处的字符,但不包括end处的字符
console.log(str.slice(2,3));//c

14.concat();

将一个或多个字符串合并到str1中返回合并后的新字符串

var str1 = "abc";
 var str2 = "123";
 var str3 = "def";
 console.log(str1.concat(str2,str3));  //abc123def
 console.log(str1+str2+str3);          //abc123def

15.search();

匹配成功返回字符串中子串第一处出现的索引值,没有匹配返回-1

var str = "abcdef";
 console.log(str.search("b"));//1
 console.log(str.search("bcd"));//1
 console.log(str.search("g"));//-1

16.match();

在字符串中匹配某个正则是否存在
返回值:如果存在,返回一个数组,数组放着匹配到的子串,如果不存在,返回null

var str = "aa BB CC AA";
 var reg = /aa/ig;   //全局不分大小写
 console.log(str.match(reg)); //["aa", "AA"]

17.String();

强制转换为字符串,所有的参数都可以 (英文和汉字除外)

console.log(String(NaN)); //"NaN"
console.log(String(null)); //"null"
console.log(String(undefined)); //"undedined"
console.log(String(12345));  //"12345"

二、ES6字符串方法

1.includes();

根据值判断字符串是否包含,返回布尔值

var str = "abcdef";
console.log(str.includes("bc"));//true
console.log(str.includes("bac"));//false

2.padStart(); /padEnd(num);

str.padStart(num); 将数组长度增加到num 从左到右以空格填充
str.padEnd(num); 将数组长度增加到num 从右到左以空格填充
str.padEnd(num,a); 将数组长度增加到num 从右到左以a填充

var str = "abc";
console.log(str.padStart(8));        //     abc
console.log(str.padStart(8,"123"));  //12312abc
console.log(str.padEnd(8,"123"));    //abc12312

3.repeat();

字符串重复拼接

var str = "cdef";
console.log(str.repeat(3));//cdefcdefcdef,str重复拼接自身3次

4.startsWith(); / endsWith();

startsWith() 判断字符串是否以参数字符开头
endsWith() 判断字符串是否以参数字符结尾

var str = "cdef";
console.log(str.startsWith("cd"));//true,字符串是否以cd开头
console.log(str.endsWith("ef"));//true,字符串是否以ef结尾

5.trimLeft(); / trimRight();

str.trimLeft(); 去掉左边空格 es6 ie不支持
str.trimRight(); 去掉右边空格 es6 ie不支持

var str = " abc ";
console.log(str.trimLeft());  //abc   
console.log(str.trimRight()); // abc

四、字符串的遍历

 var str = "abcdef"
        for (var i = 0; i < str.length; i++) {
            console.log(str[i]);   //遍历每一个字符 a b c d e f
        }
 var str = "abcdef"
        for (var key in str) {
            console.log(key);  //遍历下标 0 1 2 3 4 5
        }

        for (var ch of str) {
            console.log(ch);  //遍历每一个字符  a b c d e f
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值