JS基础-数据类型-字符串

本文深入解析JavaScript字符串的基础概念、特殊字符转义、编码、属性及常用方法。涵盖字符串操作如检索、替换、匹配、分割和提取片段,是前端开发者的实用指南。

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

源链接:https://wangdoc.com/javascript/index.html

借鉴:

  1. https://www.jb51.net/article/28009.htm
  2. http://www.w3school.com.cn/jsref/jsref_obj_string.asp

字符串

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。需要注意的就是下面的转义一级编码方面的问题。

\0 :null(\u0000)
\b :后退键(\u0008)
\f :换页符(\u000C)
\n :换行符(\u000A)
\r :回车键(\u000D)
\t :制表符(\u0009)
\v :垂直制表符(\u000B)
\' :单引号(\u0027)
\" :双引号(\u0022)
\\ :反斜杠(\u005C)

JS采用Unicode编码即\uxxxx的格式,任何符合Unicode格式输出时都会以对于字符显示。

另外字符串有类似数组的特质,可以通过index之间从字符串中定位字符,但是不可以用这种方式对字符进行修改。

var s = 'hello';
delete s[0];
s // "hello"
s[1] = 'a';
s // "hello"
s[5] = '!';
s // "hello"

没什么好说的,大部分特殊情况也都不常用,对开发没什么影响,感觉还是总结一下字符串这块的相关方法比较有用

属性

  1. constructor 对创建该对象的函数的引用,可用于判断类型

     var a = 'asdf'
     a.constructor === String // true
    
  2. length 字符串长度

     a.length = 4
    
  3. prototype 允许您向对象添加属性和方法(原型这块没研究透,研究透了再说)

     String.prototype.asdf = 111
     a.asdf // 111
    

常用方法

  1. 返回指定位置的字符:

     charAt()
     var a = 'asdfg'
     a.charAt(3) // 'f'
    
  2. 检索指定字符串在被检索字符串中的位置

     indexOf() // 检索首次出现
     lastIndexOf() // 检索最后一次出现
     var a ='asdfasdf'
     a.indexOf('df') // 2
     a.lastIndexOf('df') // 6
     a.IndexOf('df') // -1       未检索到字符串返回-1
     a.lastIndexOf('sf') // -1   未检索到字符串返回-1
    
  3. 正则匹配字符串

     match() // 返回具体内容
     search() // 返回匹配位置
     var a = 'asdf qwer zxcv'
     a.match(/\w+/g) // ["asdf", "qwer", "zxcv"]
     a.match(/aaa/g) // null
     a.search(/qwer/) // 5
     a.search(/qwsr/) // -1
    

字符串的正则匹配要注意一点,那就是JS不支持负向零宽断言,只支持正向零宽断言。即不支持(?<…),支持(?!..)。

  1. 替换字符串

     replace() // 替换
     var a = 'aaa213hrf'
     a.replace(/\d+/, 'number') // "aaanumberhrf" 将数字替换成'number'
     name = "Doe, John";
     name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
    
  2. 提取字符串片段,但不影响原字符串

     slice(start,end)
     a = 'asdfghjkl'
     a.slice(1, 5) // "sdfg"
     a.slice(1, -3) // "sdfgh"
    
  3. 将字符串分割为数组(不影响原字符串) 与 将数组组合为字符串

     split(separator,howmany)
     a = 'aaa bbb ccc'
     a.split(' ') // ["aaa", "bbb", "ccc"]
     a.split(' ', 2) // ["aaa", "bbb"]
     ["aaa", "bbb", "ccc"].join(',') // "aaa,bbb,ccc"
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值