javascript字符串方法

本文详细介绍了字符串的长度计算、查找方法(indexOf(), lastIndexOf(), search())、字符串截取(slice(), substring(), substr())、替换操作、大小写转换以及连接字符串等技术,适合初学者和开发者查阅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载链接:https://blog.youkuaiyun.com/originally_m/article/details/106023908

今天整理一下字符串的方法和属性,为了方便看,我把它分成了几个部分:

查找字符串:

序号方法描述
1length属性返回字符串的长度
2indexOf()属性返回字符串中指定文本首次出现的索引(位置)
3lastIndexOf()属性返回字符串中指定文本最后一次出现的索引(位置)
4search()属性返回字符串中特定值的字符串的首次 出现的索引(位置)
一、 length: 字符串的长度

属性返回字符串的长度

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

   
二、 indexOf( ): 查找字符串中的字符串

属性返回字符串中指定文本首次出现的索引(位置)

  var str = "abcdef"
  var strLen = str.indexOf('d')  // 3

   
三、lastIndexOf(): 查找字符串中的字符串

属性返回字符串中指定文本最后一次出现的索引(位置)

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

   

注意:

  1. 如果未找到文本,indexOf()lastIndexOf() 均返回 -1
  2. 两种方法都接受作为检索起始位置的第二个参数:
  3. lastIndexOf() 方法是向后进行检索的(从后往前),如例子中的第二个参数是6,则是从索引为6的地方开始向前检索直到字符串的起点。
  var str = "abcadef"
  var strLen = str.IndexOf('a', 2)  // 3
  var strLen2 = str.lastIndexOf('a', 6)  //3

   
四、 search( ):检索字符串中的字符串

属性返回字符串中指定字符串的首次出现的索引(位置)

  var str = "abcdedf"
  var strLen = str.search('de')  // 3

   

你注意到了没:
search()indexOf() ,是相等的,它俩的区别是:

  1. search() 方法无法设置第二个开始位置的参数
  2. indexOf() 方法无法设置更强大的搜索值(正则表达式)

截取字符串(提取部分字符串):

序号方法描述
1slice(start, end)提取字符串的某个部分并在新字符串中返回被提取的部分
2substring(start, end)提取字符串的某个部分并在新字符串中返回被提取的部分
3substr(start, length)提取字符串的某个部分并在新字符串中返回被提取的部分)
一、 slice(): 提取字符串的某个部分并在新字符串中返回被提取的部分

slice(start, end)

参数: 起始索引(开始位置),终止索引(结束位置)。

截取的结果包含开始位置,不包含终止位置。

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

   

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

  var str = "abcdefjhigk"
  var strLen = str.slice(-5,-2) // jhi

   

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

  var str = "abcdef"
  var strLen = str.slice(2) // cdef
  // 或者负数,从结尾计算
  var strLen2 = str.slice(-3) // def

   

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

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

substring(start, end)

参数: 起始索引(开始位置),终止索引(结束位置)。

截取的结果包含开始位置,不包含终止位置。

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

   

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

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

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

substr(start, length)

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

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

  var str = "abcdefjhigk"
  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","xiaomeizi") // hello xiaomeizi

   

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

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

  var str = "HELLO world"
  // 注意:使用正则表达式时不需要带引号
  var strx = str.replace(/hello/i,"xiaomeizi") // xiaomeizi 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

 

concat() 方法可用于代替加运算符,下面两行代码等效:

  var strx = "Hello" + " " + "World" //Hello World
  var stry = "Hello".concat(" ","World") //Hello World

 

注意: 所有字符串的方法都会返回新字符串。它们不会修改原始字符串。
正式的说:字符串是不可变的:字符串是不可变的,字符串不能更改,只能替换。

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

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

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

 
  • 1
  • 2

注意: IE8及更低版本不支持 trim() 方法。

提取字符串字符

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

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

 

charCodeAt(position): 方法返回字符串中指定下标(位置)的字符unicode编码
参数: 指定下标(位置)

  var str1 = "Hello World" 
  var stry = str1.charCodeAt(0) // 返回 72

 

属性访问

  var str1 = "Hello World" 
  var stry = str1[0] // 返回 H
  // 注意:不能给属性赋值
  str1[0] = "A"   // 不会报错,但是无效

 

注意: 使用属性访问有点不太靠谱:

  1. 不适合IE7或更早的版本
  2. 它让字符串看起来像是数组(其实并不是)
  3. 如果找不到字符,[ ] 返回 undefined, 而 charAt() 返回空字符串。
  4. 它是只读。str[0] = “A” 不会产生错误,但也不会执行。

如果希望用数组的方式处理字符串,可以先把它转换为数组

split(): 将字符串转换为数组:

  var str1 = "a,b,c,d,e,f" 
  var arr = str1.split(",") // 用逗号分隔
  // var arr = str1.split(" ") // 用空格分隔
  // var arr = str1.split("|") // 用竖线分隔
  arr[0]  //  返回 a
  arr[0] = "H"    // 可以接受赋值,当前 arr[0] 返回 H

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值