关于前端:字符串相关方法

3次阅读

共计 3127 个字符,预计需要花费 8 分钟才能阅读完成。

一、拼接或截取字符串

1. slice

此办法用来提取一个字符串,并返回一个新的字符串
参数:
1 start,示意从该索引处开始提取字符串的字符(包含),如果为正数则从后开始计算
2 end,示意从该索引处完结提取字符串(不包含),如果省略则始终提取到字符串开端,如果为正数从后开始计算

// slice(start, last) // 从 start 开始截取,last 完结
let str = 'tom_li';
console.log(str.slice(3)); //'_li'
console.log(str.slice(-5, -3)); //'om'
console.log(str.slice(1, 3)); //'om'
console.log(str.slice(0, 3)); //'tom'

2. concat

用于将一个或多个字符串拼接起来,返回拼接后的新字符串
参数:能够有多个,用来拼接字符串
阐明:此办法效率并不高,用“+”或者 “ 模板字符串代替比拟好

const str = 'tom';
console.log(str.concat('_', 'li'));// tom_li
console.log(str.concat('_', 'li', '-'));// tom_li-
console.log(str.concat('_', 'li', '-', 'haha'));// tom_li-haha

3. substring

此办法和 slice 办法性能雷同都是提取一个字符串,并返回提取到的字符串
参数:
1 start,示意从该索引处开始提取字符串的字符(包含)
2 end, 示意从该索引处完结提取字符串(不包含)
3 上述两个参数:如果为正数或者 NaN 则都会被当做 0,如果大于字符串的长度则会被当做字符串的长度来计算,如果 start 大于 end,则 substring 的执行成果就像两个参数调换了一样

// substring(start, end)
let str = 'tom_li';
console.log(str.substring(-1, 3)); //'tom'
console.log(str.substring(3, -1)); //'tom'

二、删除字符串

trim

删除一个字符串两端的空白字符,并返回删除后的新字符串,不会扭转原有字符串

let str = 'tom_li';
console.log(str.trim()); //'tom_li'

三、扭转字符串

1. toLowerCase

此办法没有参数,会将调用该办法的字符串值转为小写模式,并返回

let str = 'TOM';
console.log(str.toLowerCase()); // tom

2. toUpperCase

此办法没有参数,会将调用该办法的字符串值转为大写模式,并返回

let str = 'tom';
console.log(str.toLowerCase()); // TOM

3. replace

能够将一个替换值替换字符串的一部分,返回替换后的新字符串
参数:
1)一个字符串中要被替换的子字符串或者正则表达式,默认值替换第一个,能够在正则表达式中设置全局模式,来替换所有匹配的子字符串
2) 一个替换值

let str = 'tom_li';
// replace('替换值', '被替换的值')
console.log(str.replace(/o/g, 'c')); //"tcm_li"
console.log(str.replace('o', 'c'));

4. split

能够应用一个指定的分隔符来将字符串拆分成数组,返回一个数组
参数:
1)分隔符,能够为一个字符串也能够为正则表达式,为空的话则将每个字符都拆分。默认全局拆分
2) 拆分的长度(可选),为一个整数用来限度拆分的个数,如果超过了这个数量则新数组中不返回剩下的文本

let str = 'tom_li';
console.log(str.split('')); //['tom_li']
console.log(str.split('_')); //['tom', 'li']

四、查问字符串

1. charAt

从一个字符串中返回指定的字符
参数:index,介于 0~length- 1 之间的整数,默认为 0

let str = 'tom_li';
console.log(str.charAt(0)); //'t'
console.log(str.charAt(1)); //'o'
console.log(str.charAt(2)); //'m'

2. includes

判断字符串中是否蕴含指定字符,蕴含则返回 true,不蕴含则返回 false
参数:subStr,指定的字符串

let str = 'tom_li';
console.log(str.includes('tom')); //true
console.log(str.includes('fire')); //flase

3. indexOf

判断字符串中是否蕴含指定字符,如果蕴含则返回该字符索引的地位 (查找到了立刻返回),如果不蕴含则返回 -1
参数:subStr,指定的字符串

let str = 'tom_li';
console.log(str.indexOf('tom')); //0
console.log(str.indexOf('om')); //1
console.log(str.indexOf('m_')); //2
console.log(str.indexOf('fire')); //-1

4. lastIndexOf

用法和 indexOf 基本相同,区别是 lastIndexOf()是从后往前查找

let str = 'tom_li';
console.log(str.lastIndexOf('tom')); //0
console.log(str.lastIndexOf('om')); //1
console.log(str.lastIndexOf('m_')); //2
console.log(str.lastIndexOf('fire')); //-1

5. search

应用正则表达式查找指定字符串,如果找到则返回首次匹配胜利的索引,没有找到则返回 -1
参数:一个正则表达式,如果传入一个非正则表达式则会隐式的将其转换为正则表达式对象

let str = 'tom_li';
console.log(str.search('tom')); //0
console.log(str.search('om')); //1
console.log(str.search(/o/)); //1
console.log(str.search(/m/)); //2

6. match

返回一个字符串匹配正则表达式的后果, 如果未设置全局匹配,则会返回第一个残缺匹配及其相干的捕捉组,捕捉组中蕴含有 groups、index、input 等属性。
参数:一个正则表达式,如果传入一个非正则表达式则会隐式的将其转换为正则表达式对象

let str = 'tom_li';
console.log(str.match(/t/)); 
//['t', index: 0, input: 'tom_li', groups: undefined]
console.log(str.match(/o/)); 
//['o', index: 1, input: 'tom_li', groups: undefined]
console.log(str.match(/om/)); 
//['om', index: 1, input: 'tom_li', groups: undefined]
console.log(str.match(/tom/)); 
//['tom', index: 0, input: 'tom_li', groups: undefined]
console.log(str.match(/l/g)); 
//['l']
正文完
 0