字符串常用API

350 阅读3分钟

写在前面

在JavaScript中所有字符串的方法都会返回新字符串,它们不会修改原始字符串。

一、 length: 返回字符串的长度

var str = "abcdef" 
var strLen = str.length // 6

二、 indexOf( ): 返回字符串中指定文本首次出现的索引(位置)

如果未找到返回 -1

var str = "abcdefdasf" 
var strfirst = str.indexOf('d'1) //3 
// 第一个参数为查找的字符,
// 第二个是从那个位置开始,不写默认为第一项

三、lastIndexOf(): 返回字符串中指定文本最后一次出现的索引(位置)

如果未找到返回 -1

var str = "abcadef" 
var strLen = str.lastIndexOf('a'0) // 3 同上

四、 search( ):返回字符串中指定字符串的首次出现的索引(位置)

var str = "abcdedf"
var strLen = str.search('de') // 3 
search() 和indexOf() ,它俩的区别是:
// search() 方法无法设置第二个开始位置的参数 
// indexOf() 方法无法设置更强大的搜索值(正则表达式)
// 截取字符串(提取部分字符串)

一、slice(start, end):参数: 起始索引(开始位置),终止索引(结束位置);截取的结果包含开始位置,不包含终止位置。

  var str = "abcdef"
  var strLen = str.slice(2,5) // cde

// 如果参数为负数,则从字符串的末尾向前计算:

  var str = "abcd"
  var strLen = str.slice(0,-1) // abc
  //很方便解决删除最后一个字符

// 如果省略第二个参数,则从起始的位置裁剪到字符串的结尾

  var str = "abcdef"
  var strLen = str.slice(2) // cdef

** 注意: 负数参数不能用于IE8及以前

二、 substring(): 类似于slice(),区别是不能设置负数索引

substring(start, end)

三、 substr(): 类似于slice(),区别是第二个参数不同

substr(start, length)

参数: 起始索引(开始位置),被提取的部分的长度

截取的结果包含开始位置。

var str = "abcdefjh" 
var strLen = str.substr(1,5) // bcdef

如果省略第二个参数,则从起始的位置裁剪到字符串的结尾

var str = "abcdef" 
var strLen = str.substr(2) // cdef

如果首个参数为负数,则从字符串的结尾计算位置

var str = "abcdefjhigk" 
var strLen = str.substr(-2) // gk

注意: 第二个参数不能是负数,因为它定义的是长度。

替换字符串内容

replace() 参数: 字符串中即将被替换的文本,替换成的文本

var str = “hello world” 
var strx = str.replace(“world”,“xiaozhuzhu”) 
// hello xiaozhuzhu

注意: 该方法对大小写敏感,因此不会匹配到大写的”WORLD“

如果想执行大小写不敏感的替换需要使用正则表达式: /i(大小写不敏感 )全替换 加 /ig

var str = "HELLO world"
// 注意:使用正则表达式时不需要带引号 
var strx = str.replace(/hello/i,"xiaozhuzhu") 
// xiaozhuzhu world

转换为大小写

toUpperCase():把字符串转换成大写


  var str = "hello world"
  var strx = str.toUpperCase() // HELLO WORLD

  // toLowerCase():把字符串转换成小写

  var str = "Hello World"
  var strx = str.toLowerCase() //hello world

连接两个或多个字符串

concat(): 参数: 第一个参数是用什么连接,第二个是连接到谁

  var str1 = "Hello"
  var str2 = "World"
  var str3 = "xxx"
  var strx = str1.concat(" ",str2) 
  //Hello World
  var stry = str1.concat(" ",str2," 123 ",str3)   
  //Hello World 123 xxx

去空格:删除字符串两端的空白字符

trim() 去掉字符串两端的空格

 var str = "           Hello World           " 
 var stry = str.trim() //Hello World

注意: IE8及更低版本不支持 trim() 方法。 提取字符串字符

charAt(position): 方法返回字符串中指定下标(位置)的字符串

参数: 指定下标(位置)


  var str1 = "Hello World" 
  var stry = str1.charAt(0) // 返回 H

字符串转换为数组

 split(): 将字符串转换为数组:
 var str1 = "a,b,c,d,e,f" 
 var arr = str1.split(",") 
 // 用逗号分隔 ["a","b","c","d","e","f"]

扩展方法

. startWith

如果想要知道这个字符串是否以Error开头。

let message = 'Error zz'
console.log(message.startsWith('Error')); // true
console.log(message.startsWith('zz')); // false

. endsWith

同理如果想要知道这个字符串是否以.结尾。

let message = 'Error zz.'
console.log(message.endsWith('.')); // true
console.log(message.endsWith('zz')); // false

String.prototype.String.prototype.padStart

用给定的字符串在尾部拼接到指定长度

'zz'.padEnd(5,'..') // "zz...";

用给定的字符串在首部拼接到指定长度

'zz'.padStart(5, '1'); // "...zz";