4.字符串型 string

本文参考 JavaScript String 对象 | 菜鸟教程

一串字符,用引号表示,加了引号的都是字符串类型

字符串在重新定义后不会消除之前定义字符串的内存,所以我们应减少对字符串的修改(重新复制,拼接等操作) 

本文并非列出了字符串的所有用法,如果想深究的话可以看一下这个 String - JavaScript | MDN

目录

1  字符串内放引号

2  转义字符

3  返回字符串长度 length

4  字符串拼接

5  返回指定位数的值

6  常用内置方法

6.1  返回指定位置字符的ASCII码 charCodeAt()

6.2  判断是否以指定字符串结尾 endsWith()

6.3  将ASCII转换为字符 String.fromCharCode()

6.4  指定字符(串)在字符串中首次出现的位置 indexOf()

6.5  字符串是否包含指定字符(串) includes()

6.6  指定字符(串)在字符串中最后出现的位置 lastIndexOf()

6.7  正则 match()

6.8  重复指定次数然后拼在一起 repeat()

6.9  替换首个匹配的字符(串) replace()

6.10  替换所有匹配的字符(串) replaceAll()

6.11  返回指定字符(串)在字符串中首次出现的位置 search()

6.12  提取指定范围字符(串) slice()

6.13  分割字符串 split()

6.14  判断是否以指定字符串开头 startsWith()

6.15  从索引处抽取指定长度的字符 substr()

6.16  将所有字符转换为小写 toLowerCase()

6.17  将所有字符转换为大写 toUpperCase()

6.18  移除两侧空白的字符 trim()

7  不常用内置方法

7.1  返回指定位置字符 charAt()

7.2  字符串拼接 concat()

7.3  抽取两个位数之间的字符 substring()

7.4  根据本地语言转换为小写 toLocaleLowerCase()

7.5  根据本地语言转换为小写 toLocaleUpperCase()

7.6  返回对象的原始值 valueOf()

7.7  返回对象字符串形式 toString()

8  一些案例

8.1  找出指定字符在字符串中出现的位置与次数

8.1.1  方法一

8.2  找出字符串中出现次数最多的字符并统计其次数

8.2.1  方法一

8.2.2  方法二


 

1  字符串内放引号

如果你想在字符串中放双引号,那就这样写

如果想在字符串内放单引号,那么就把双引号放到外面

2  转义字符

常用的有下面几种,转义字符与其他语言都是通用的

我们做一个换行的例子

3  返回字符串长度 length

一个空格算一个字符,一个转移字符(\n)算一个字符,length返回的变量类型是数值型

我们后面可以使用 倒数第n个数的位数 = 长度 - n 来找到倒数的位数

4  字符串拼接

字符串 + 任何类型 = 拼接之后的字符串

我们发现不用转换类型,硬拼就行

顺序无所谓,任何类型 + 字符串 = 拼接之后的字符串

5  返回指定位数的值

我们这样写就能提取出指定字符串的第0个字符

负值不行,会报错

不能像python一样 a[1:3] 直接切出来

6  常用内置方法

6.1  返回指定位置字符的ASCII码 charCodeAt()

有时我们需要给字母一个数字来替代,这个时候这个函数还是有一点作用的

括号内只能生效第一个参数,如果多写几个不会报错,但没用

6.2  判断是否以指定字符串结尾 endsWith()

我们检测o是否是hello的最后一个字符

我们再换成l

可以指定字符的结束位数,比如我现在让字符在第3为结束,之后开始判定

6.3  将ASCII转换为字符 String.fromCharCode()

可以转换一个也可以转换多个,String是必须这样写的,是不能像python一样使用一个对象就能替代的

6.4  指定字符(串)在字符串中首次出现的位置 indexOf()

是在字符串中从前往后找

如果找 lo 就是3号位

如果没有就会返回-1

可以加上开始位数作为第二个参数,我现在让他从5号开始找

这样返回的就是world中的l的位数

6.5  字符串是否包含指定字符(串) includes()

如果包含就为true

不包含为false

可以加开始位数

这样它就找不到了

6.6  指定字符(串)在字符串中最后出现的位置 lastIndexOf()

相当于反向的 indexOf(),这个是从后往前找

如果没有就会返回-1

可以加上开始位数,我现在让他从第二位开始往前找

6.7  正则 match()

括号中跟 正则表达式

与python的正则表达式有区别,但是看着还能就和用,有下面几点是要注意的

  • 两边都要有斜杠,不写尾缀也要有斜杠
  • 最后的尾缀g是全局查找(不只找一次),i是不区分大小写,可以写成gi,这样就是不区分大小写且全局查找

比如我现在想找到字符串中所有的数字

如果只想找第一个那么就不要g了

发现返回的还是一个数组,所以一般我们加上gi就行了

6.8  重复指定次数然后拼在一起 repeat()

6.9  替换首个匹配的字符(串) replace()

  • replace不会改变原数组的值

括号中的第一个参数可以为 正则表达式,如果是正则表达式也是替换匹配的首个字符(串)

6.10  替换所有匹配的字符(串) replaceAll()

  • replaceAll不会改变原数组的值

括号中的第一个参数可以为 正则表达式,如果是正则表达式会替换匹配的所有字符(串)

replaceAll不会改变原数组的值

6.11  返回指定字符(串)在字符串中首次出现的位置 search()

如果没有的话会返回-1

与indexOf()的区别是,search()可以跟正则表达式,但search()不能指定开始位置

6.12  提取指定范围字符(串) slice()

可以不给中止范围

这样就是从1号位到最后

可以给负值取出最后n个字符

使用负值时只能给一个参数

6.13  分割字符串 split()

我现在以空格进行分割

发现删除了空格这个字符,然后分成两个

我们再以l这个字符进行分割

我的内容中有三个l,它就分成了4份

可以对数组设置最大长度,我们现在将其设置为2

这样数组中就只有两个元素了

如果给一个空字符串,那么它将给每一个字符都分出来

6.14  判断是否以指定字符串开头 startsWith()

可以指定开始位数,我现在让字符从第3位开始

6.15  从索引处抽取指定长度的字符 substr()

我现在抽取2号位的后5个字符

可以不给长度(5),不给它就会从开始位一直抽到结束

位数可以是负值

6.16  将所有字符转换为小写 toLowerCase()

6.17  将所有字符转换为大写 toUpperCase()

6.18  移除两侧空白的字符 trim()

7  不常用内置方法

7.1  返回指定位置字符 charAt()

参数只能为正值,如果想倒着数可以借助length

这样就是最后一个字符。长度是不从0开始算的,位数是从0开始算的,所以为了取最后一位需要减一

可以被中括号替代

7.2  字符串拼接 concat()

可以用 加号 替代

7.3  抽取两个位数之间的字符 substring()

  • 结束位置可省略,省略后会一直抽到最后

功能可以被slice替代,且这两个值不能为负值

7.4  根据本地语言转换为小写 toLocaleLowerCase()

只有少数语言可以转换,像中文是转换不了的

7.5  根据本地语言转换为小写 toLocaleUpperCase()

只有少数语言可以转换,像中文是转换不了的

7.6  返回对象的原始值 valueOf()

7.7  返回对象字符串形式 toString()

8  一些案例

8.1  找出指定字符在字符串中出现的位置与次数

8.1.1  方法一

出现了5次,依次是2,8,12,15,19号位

8.2  找出字符串中出现次数最多的字符并统计其次数

8.2.1  方法一

这个方法的思路是将每一个字符的次数写到一个数组中,然后把最大的搞出来,如果有多个最大的,那么会显示出字符串中靠前的字符

8.2.2  方法二

方法二是利用的对象的属性,属性为字符,值为出现的次数。这种方法要比方法一更高明些。如果次数相同,同样会显示靠前的字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值