js string字符串常用方法

  • length属性
    每个 String 对象都有一个 length 属性,表示字符串中字符的数量:
let str = "hello";
str.length; // 5
  • charAt()
    charAt()方法返回给定索引位置的字符,由传给方法的整数参数指定:
let str = "hello";
str.charAt(0); // "h"
str.charAt(1); // "e"
  • charCodeAt()
    使用 charCodeAt()方法可以查看指定码元的字符编码,索引以整数指定:
let str = "abcde";
str.charCodeAt(0); // 97
  • fromCharCode()
    fromCharCode()方法用于根据给定的 UTF-16 码元创建字符串中的字符。这个方法可以接受任意
    多个数值,并返回将所有数值对应的字符拼接起来的字符串:
String.fromCharCode(97, 98, 99);// "abc
  • concat()
    用于将一个或多个字符串拼接成一个新字符串:
let str = "abc";
str.concat("d", "e", "fg"); // abcdefg
// str的值不变,还是abc

虽然 concat()方法可以拼接字符串,但更常用的方式是使用加号操作符(+)。

  • slice()、substring()、substr()
    这3个方法都返回调用它们的字符串的一个子字符串,而且都接收一或两个参数。

对 slice()和 substring()而言,第二个参数是提取结
束的位置(即该位置之前的字符会被提取出来,不包含结束位置的字符)。对 substr()而言,第二个参数表示返回的子字符串数量。
任何情况下,省略第二个参数都意味着提取到字符串末尾。与 concat()方法一样,slice()、substr()和 substring()也不会修改调用它们的字符串,而只会返回提取到的原始新字符串值:

// 只有一个参数
let str = "hello";
str.slice(3); // "lo"
str.substring(3); // "lo"
str.substr(3); // "lo"

// 两个参数 
str.slice(0, 3); //"hel"
str.substring(0, 3); // "hel"
str.substr(1, 3); // 从1开始,截取三个: "ell"

当某个参数是负值时,这 3 个方法的行为又有不同;
slice(): 将所有负值参数都当成字符串长度加上负参数值(也可以理解为从倒数第几个,-1就是倒数第一个字符);
substring(): 会将所有负参数值都转换为 0;
substr(): 会将第二个参数负参数值转换为 0。

// 一个参数, 为负数
let str = "hello world";
str.slice(-3); // 从倒数第三至末尾  "rld"
str.substring(-3); // 转换为0, 从0至末尾 "hello world"
str.substr(-3); // 从倒数第三至末尾  "rld"

// 两个参数
str.slice(3, -4); //  "lo w" 
str.substring(3, -4); 
// ** 这里substring有个特殊的地方,这个方法会将较小的参数作为起点, 虽然-4转换为0,等价于str.substring(0, 3); 结果为"hel" 
str.substr(3, -4); // "" -4 => 0
  • indexOf()、lastIndexOf()
    这两个方法从字符串中搜索传入的字符串,并返回位置(如果没找到,则返回-1),两者的区别在于,indexOf()方法从字符串开头开始查找子字符串,而 lastIndexOf()方法从字符串末尾开始查找子字符串:
let str = "hello world";
str.indexOf("o"); // 4
str.lastIndexOf("o"); // 7

这两个方法都可以接收可选的第二个参数,表示开始搜索的位置。这意味着,indexOf()会从这个参数指定的位置开始向字符串末尾搜索,忽略该位置之前的字符;lastIndexOf()则会从这个参数指定的位置开始向字符串开头搜索,忽略该位置之后直到字符串末尾的字符:

let str = "hello world";
str.indexOf("o", 6); //  7
str.lastIndexOf("o", 6); // 4
  • startsWith()、endsWith()
    startsWith()检查字符串开头的匹配项;endsWith()检查字符串末尾的匹配项:
let str = "abcde";
str.startsWith("abc"); // true
str.endsWith("de"); // true

startsWith()方法接收可选的第二个参数,表示开始搜索的位置。如果传入第二个参数,则意味着这两个方法会从指定位置向着字符串末尾搜索,忽略该位置之前的所有字符;
endsWith()方法接收可选的第二个参数,表示应该当作字符串末尾的位置。如果不提供这个参数,
那么默认就是字符串长度;

let str = "abcde";
str.startsWith("bcd", 1); // true
str.endsWith("bc", 3); // true 等价于str => abc
  • includes()
    includes()检查整个字符串是否包含,includes()方法接收可选的第二个参数,表示开始搜索的位置:
let str = "abcde";
str.includes("bc"); // true
str.includes("de", 2);// true
  • trim()
    trim()删除字符串前、后所有空格符(中间的不删除),再返回结果(不会改变原字符串):
let str = "  abc  de  ";
str.trim(); // "abc  de"   str不变还是"  abc  de  "

  • repeat()
    这个方法接收一个整数参数,表示要将字符串复制多少次,原字符串不变:
let str = "abc";
str.repeat(3); // "abcabcabc"
  • toUpperCase()、toLowerCase()
    toUpperCase(): 将字符串全部转换为大写;
    toLowerCase(): 将字符串全部转换为小写;
let str = "aBcdE";
str.toUpperCase(); // "ABCDE"
str.toLowerCase(); // "abcde"
  • 字符串匹配方法: match() 、search()
    match()方法接收一个参数,可以是一个正则表达式字符串,也可以是一个 RegExp 对象:
let text = "cat, bat, sat, fat"; 
let pattern = /.at/; 
let matches = text.match(pattern); 
matches.index; // 0 
matches[0]; // "cat" 
pattern.lastIndex; // 0 

match()方法返回的数组与 RegExp 对象的 exec()方法返回的数组是一样的:第一个元素是与整
个模式匹配的字符串,其余元素则是与表达式中的捕获组匹配的字符串(如果有的话)。

search()方法唯一的参数与 match()方法一样:正则表达式字符串或 RegExp 对象。这个方法返回模式第一个匹配的位置索引,如果没找到则返回-1。search()始终从字符串开头向后匹配模式:

let text = "cat, bat, sat, fat"; 
let pos = text.search(/at/); 
pos; // 1 
//这里,search(/at/)返回 1,即"at"的第一个字符在字符串中的位置
  • replace()
    这个方法接收两个参数,第一个参数可以是一个 RegExp 对象或一个字符串(这个字符串不会转换为正则表达式),第二个参数可以是一个字符串或一个函数。如果第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,第一个参数必须为正则表达式并且带全局标记:
let text = "cat, bat, sat, fat"; 
let result = text.replace("at", "ond"); 
console.log(result); // "cond, bat, sat, fat" 
result = text.replace(/at/g, "ond"); 
console.log(result); // "cond, bond, sond, fond" 
  • split()
    这个方法会根据传入的分隔符将字符串拆分成数组。作为分隔符的参数可以是字符串,也可以是 RegExp 对象。(字符串分隔符不会被这个方法当成正则表达式。)还可以传入第二个参数,即数组大小,确保返回的数组不会超过指定大小:
let colorText = "red,blue,green,yellow"; 
let colors1 = colorText.split(","); // ["red", "blue", "green", "yellow"] 
let colors2 = colorText.split(",", 2); // ["red", "blue"] 
let colors3 = colorText.split(/[^,]+/); // ["", ",", ",", ",", ""] 

以上就是字符串的一些常用方法和属性,如果觉得对您有帮助的话,给小shy点个赞,谢谢啦!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RayShyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值