字符串的常用方法

字符串中的常用方法

所有用单引号,双引号,反引号抱起来的都是字符串 
每一个字符串都是由零到多个字符组成的

  • str.length //=>代表字符串的长度

  • str[10000] //=>不存在的索引会返回undefined

charAt / charCodeAt

charAt:根据索引获取指定位置的字符 
charCodeAt:获取指定字符的ASII码值(Unicode编码值)

  • params参数 
    n[number] 获取字符指定的索引
  • return 
    返回查找到的字符(找不到的话返回的是空字符串不是undefined)或者对应的编码值
let str = "zhufengjiaoyu";
console.log(str.charAt(0)); //"z"
console.log(str[0]); //"z"
console.log(str.charAt(100)); //空字符串
console.log(str[100]); //undefined
 
console.log(str.charCodeAt(0)); //"122"
console.log(str.charCodeAt(100)); //NaN
console.log(String.fromCharCode(122)); //"z"

实现字符串截取的三个方法

substr / substring / slice

substr(n,m):从索引n开始截取m个字符,m不写截取到末尾(后面的方法也是); 
substring(n,m):从索引n开始找到索引为m处(不含m); 
slice(n,m):和substring一样,都是找到索引为m处,但是slice可以支持负数作为索引,其余两个方法是不可以的;

  • params参数 
    n[number] 获取字符指定的索引
  • return 
    返回查找到的字符(找不到的话返回的是空字符串不是undefined)或者对应的编码值
let str = "零一二三四五六七八九十";
console.log(str.substr(3,7));//三四五六七八九十
console.log(str.substr(3));//截取到末尾
 
console.log(str.substring(3,7));//三四五六七
console.log(str.substring(3));//截取到末尾
console.log(str.substring(-7,-3)+"1");//1不支持负数索引
 
console.log(str.slice(3,7));//三四五六七
console.log(str.slice(3));//截取到末尾
console.log(str.slice(-11,-3));//和console.log(str.slice(11-11,11-3));同理 

indexOf(x,y) / lastIndexOf(x) 
在字符串方法中兼容所有浏览器

indexOf(x,y):获取第一次出现的位置的索引,y是控制查找的起始位置索引,找不到返回-1 
lastIndexOf(x):最后一次出现位置的索引,找不到返回-1

let str = "零一二三四五六七八九六十";
console.log(str.indexOf(""));//6
console.log(str.indexOf("",7));//11
console.log(str.indexOf("feng"));//12
console.log(str.lastIndexOf("")); //返回的是字符串出现的索引位置11
//验证当前包不包含字符串
if (!str.includes("")) {
alert('不包含');
}; 

toUpperCase / tolowerCase:转换大小写

转换为大写str.toUpperCase 
转换为小写str.tolowerCase

split:分隔符参数分割并转换为数组

stringObject.split(separator,howmany) 
参数 描述

  • separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

  • howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

let str = "零|一|二|三|四|五";
let ary = str.split("|");
console.log(ary.join(","));//零,一,二,三,四,五
//join()将数组转化为字符串,可以指定分隔符
console.log(ary.toString());//零,一,二,三,四,五 

replace:实现字符串的转换(经常伴随正则来应用)

replace(老字符,新字符);

let str = "零@一@二@三@四@五";
str = str.replace("@", "|");//零|一@二@三@四@五 只能替换一次
console.log(str);
str = str.replace(/@/g , "|");//可以结合正则来使用
console.log(str);//零|一|二|三|四|五 

match 
localCompare 
trim 
trimLeft 
trimRight

实现一些常用的需求,获取时间字符串的方案

时间字符串的处理>方案一

let time = "2020-3-21 12:12:12"
//变为自己需要的字符串格式,例如:
//2020年03月21日 12时12分12秒
//2020年03月21日
//07/24 12:06
time = time.replace("-","").replace("-","").replace(" ","").replace(":","").replace(":","").replace(":","");
console.log(time);//2020年3月21日 12时12分12秒 

方案二基于获取值的方案

let time = "2020-3-21 12:12:12"
// 基于获取值的方案
let n = time.indexOf("-");
let m = time.indexOf(" ");
let x = time.indexOf(":");
let y = time.lastIndexOf("-");
let z = time.lastIndexOf(":");
let year = time.substring(0,n);
let month = time.substring(n+1,y);
let day = time.substring(y+1,m);
console.log(n,m,x,y,z);//4 9 12 6 15
console.log(year+"年0"+month+""+day+"");//2020年03月21日 

方案三基于split拆分

let time = "2020-3-21 12:12:12";
// 第三种方案
let n = time.split(" ");
let m = n[0].split("-");
let x = n[1].split(":");
console.log(n,m,x);
//["2020-3-21", "12:12:12"] (3) ["2020", "3", "21"] (3) ["12", "12", "12"] 

正则基于split拆分字符串

let time = "2020-3-21 12:12:12";
let ary = time.split(/(?: |-|:)/g);
console.log(ary);//["2020", "3", "21", "12", "12", "12"]
原文地址:https://www.cnblogs.com/niuyaomin/p/12540107.html