JS字符串的操作方法

299 阅读3分钟

字符串的操作方法

1. 创建字符串

两种方式, new String 或者 const str = '122';

  • 值得注意的是 虽然都可以创建字符串,但通过new String实例出的字符串本身是一个objet类型

2. 字符串的转换

  • 将其他类型转化为字符串

let num = 1; num.toString(); 返回一个新的值('1'),不改变数据自身 String(num); 返回一个新的值('1'),不会改变数据自身 num + ''; 返回一个新的值('1'),不会改变数据自身

3. 字符串的分割

  • split(str, length) 将字符串分割为数组,接收两个可选参数,第一个参数为匹配项,第二个参数为执行数组的最大长度,方法不会改变数据本身

const str1 = '21dsa,12rer,ewd,sc'; str1.split(',',15); // 输出 ['21dsa', '12rer', 'ewd', 'sc']

4. 字符串替换

  • replace(str, str1) 接收两个可选参数,str为需要匹配的字符,str1位替换字符

const str1 = '21dsa,12rer,ewd,sc'; str1.replace('', 'aaa'); // 输出 '21daaasa,12rer,ewd,sc'

5.获取字符串长度

str.length 与数字一样

6. 查询字符串

  • indexOf() 与 lastIndexOf(), 返回匹配字符串第一次出现的位置,lastIndexOf从字符串末尾开始匹配

7. 返回指定位置的字符

  • charAt() 与 charCodeAt() 接收一个字符串的下标为参数,并返回字符,charCodeAt返回的是字符编码值

const str = "Hello World!"; const charCode = mystr. charCodeAt(7); //111

8. 字符串匹配

  • match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

const mystr = "hi,mynameisstar6,33iswho?"; const matchStr = mystr.match("33"); // { 0: "3", index: 17,input: "hi,mynameisstar6,33iswho?" }

  • exec() 区别在于这个方法必须配合正则使用,且由正则调用。
  • search() 检测字符串中是否包含检索字符,或匹配正则,成功则返回下标,反之返回-1,需要注意的是, 这个方法始终返回的是从字符串开头匹配到的第一次下标

9. 字符串拼接

  • 可以将多个字符串做加法 str1 + str2 或 str1.concat(str2);

10. 字符串切割和提取

  • 有三种可以从字符串抽取字符和切割的方法:
  • 第一种:slice(start: number, end: number)函数: 两个可选参数,start为开始位置,end结束位置。 为负数时从字符串末尾开始计算,第二个参数不传时默认匹配到字符串结束。

const str1 = '21d*sa,12rer,ewd,sc'; str1.slice(-4, -1) 'd,s'

  • 第二种:substring(start: number, end: number)函数:与第一种不同的是,参数不能传负值,为负时会自动转为0;

  • 第三种:substr(start: number, length: number)函数:start参数可以为负数、必传,length参数为选填不传时默认抽取至字符串末尾。

const str1 = '21d*sa,12rer,ewd,sc'; str1.substr(-4); // 输出: 'd,sc'

11. 字符串大小写转换

  • stying.toLowerCase(): 将字符串所有字符转化为小写。
  • stying.toUpperCase(): 将字符串所有字符转为为大些

12. 字符串去除空格

  • ' hello world '.trim() 方法用来删除字符串前后的所有空格 // 输出 'hello world'

13. 字符串去重

  1. const str = "aahhgggsssjjj"; function removeRepeat(msg){
    const res=[];
    let arr = msg.split("");
    for(var i=0; i < arr.length; i++){
    if(res.indexOf(arr[i]) == -1){
    res.push(arr[i]);
    }
    }
    return res.join("");
    }
    removeRepeat(str); // ahgsj
  1. [].filter.call('1111fdsf1dsf',(s,i,o)=>o.indexOf(s)==i).join(''); // 输出 '1fds'