javascript字符串详解

课程大纲

  1. 字符串概述
  2. 字符串长度
  3. 转义字符
  4. 字符串对象
  5. 字符串方法

字符串概述

定义:字符串就是用单引号或者双引号包裹起来的,零个或多个排列在一起的字符。
嵌套:字符串可以嵌套。

在单引号包括的字符串内部,应该使用双引号进行嵌套
在双引号包裹的字符串内部,应该使用单引号进行嵌套
在json解析的时候字符串需要使用单引号,因此推荐在各种情况都使用单引号的方式来声明。

转义字符:用特殊的符号来替代在字符串当中,容易引起歧义的内容
’ 单引号 " 双引号

字符串需要在一行内定义,分成多行会报错。但是如果必须分成多行,则在每一行的末尾使用反斜杠\作为连接符。
也可以使用[(+)连接运算符]来连接多个字符串,模拟多行字符串。

javascript字符串提供了一系列的方法,来帮助我们更好的使用字符串

  1. 测量字符串长度:length属性
  2. 字符索引:[]方法

索引一次只能索引一个字符,如果需要多个则需要用+连接符。
索引从0开始,0表示第一个字符。

  1. 获取指定位置字符:charAt()方法和charCodeAt()方法

charAt返回的是具体的字符
charCodeAt()返回的是字符对应的Unicode编码
字符编码需要记得两个。A-65,a-97。其他符号累加即可。
如果index是负数,或大于等于字符串的长度,则charCodeAt()返回NaN。

  1. 字符串连接:concat()方法

concat()方法能够将两个字符串拼接起来,合成一个新的字符串。
可以认为concat和+作用相同。至少在现阶段我们可以认为他们是没有区别的。

转义字符

定义:反斜杠被叫做转义字符。

字符 解释
单引号
" 双引号
\ \ 反斜杠
\n 换行
\r 回车
\t tab 制表符
\b 退格符
\f 换页符

\n \r
区别
\n是换行,表示使光标下移一格。
\r是回车,表示使光标到行首

是浏览器换行

总结:\r\n表示源代码换行。
表示浏览器文字换行。

字符串对象

javascript中有字符串类型string类型,还提供了另外一种字符串的声明方式,这种方式叫字符串对象。使用new关键字将字符串定义为一个对象。

var newString = new String("Hello World");

不要创建String对象。它会拖慢执行速度,并可能产生其他副作用;
字符串和字符串对象是两个完全不同类型的数据,虽然效果相似,但是不能混为一谈!

字符串属性及方法

属性 解释
length 返回字符串长度
charAt(number) 返回当前指定位置的字符
charCodeAt() 返回字符对应的Unicode编码
concat() 连接字符串
substring 截取字符串
substr 截取字符串
slice 截取字符串
indexOf 返回当前查找字符串的位置,如果没有返回-1
lastIndexOf 倒过来查找
trim 去掉字符串两端的空格
toUpperCase和toLowerCase 大小写转换
localeCompare 比较两个字符串的大小
match 返回一个指定字符串的数组
search 返回位置
replace 替换字符串
split 字符串切割,返回数组

substring:截取字符串

str.substring(num1,num2);

作用:从num1位置开始截取,截止到num2位置结束之间的字符串。
第一个参数表示子字符串的开始位置,第二个参数表示结束位置。

结束位置理论上应该大于开始位置。
如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。

substr:截取字符串

str.substr(num1,num2);

作用:从num1位置开始截取,num2表示要截取的字符串长度。

substr方法虽然写法和substring很相似,但是表达的含义以及用法却并不一样。
substr方法两个参数不能够互换。

slice:截取字符串

str.slice(num1,num2);

作用是从num1位置开始截取,num2表示截取结束的位置。

slice作用也是截取字符串,但是slice的两个参数不能互换。
如果开始位置大于结束位置,那么返回结果就是一个空字符串。

substring、substr、slice三个方法第一个参数都表示字符串截取的开始位置。如果省略第二个参数,那么这三个方法都表示获取字符串本身一直到结束。

indexOf:查找一个字符串在另一个字符串的位置

str.indexOf('substr');

字符串查找是从原字符串的开始处进行查找。如果查找失败则返回-1。

lastIndexOf:查找一个字符串在另一个字符串的位置

str.lastIndexOf('substr');

字符串的查找是从原字符串末尾处向前进行查找。如果查找失败则返回-1。
只是查找顺序从末尾向前,并不是把字符串也反过来查找!!!

indexOf和lastIndexOf还能接受第二个参数。表示从这个位置开始向后/前匹配

replace方法

replace方法能够将[查找到的第一个指定字符串]替换成[目标字符串]。如果查找失败则不发生替换,而是将原字符串复制一份拷贝。

str.replace(oldString,newString);

replace方法并不会对原本字符串产生任何影响,而是会生成一个新的字符串。
replace只能改变第一个查找到的子字符串,如果想要改变多个,仍然需要依赖于正则表达式。

trim方法

trim()方法的作用是能够去掉字符串两端多余的空格。

str.trim();

trim方法并不会对原本字符串产生任何影响,而是会生成一个新的字符串。

toUpperCase方法

toUpperCase方法能够把字符串中的英文字母全都转换成大写字母。

str.toUpperCase();

toLowerCase方法

toLowerCase方法能够把字符串中的英文字母全都转换成小写字母。

str.toLowerCase();

localeCompare方法

localeCompare方法的作用是根据本地的排序规则来进行比较。

str1.localeCompare(str2);

如果计算结果大于0则表示str1大于str2。
如果计算结果等于0则表示str1等于str2。
如果计算结果小于0则表示str1小于str2。

ECMAscript标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。如果想要自定义比较方法也是可以的。

match方法

match方法的作用是查找原字符串是否匹配某个子字符串,返回结果是匹配的子字符串数组,如果没有找到则返回null。返回的数组内容为:寻找的子字符串,子字符串位置和原字符串。

str.match(substr);

match方法只能匹配到寻找到的第一个字符串。
match方法还有另外一种正则表达式的写法,就是将substr字符串用正则表达式写。正则表达式的写法中能够找到所有匹配的字符串。

search方法

search方法和match相似,都是查找子字符串在指定字符串中的位置。不同的时返回结果为下标。如果没有找到匹配子串,则返回-1。

str.search(substr);

javascript字符集

JavaScript使用Unicode字符集。也就是说,在Js引擎内部,所有字符都用Unicode表示。

字符串Base64编码

Base64本身是一种加密方式,可以将任意字符转成可打印字符。而我们使用这种编码方法,主要不是为了加密,而是为了不出现特殊字符,简化程序的处理。

解析非中文代码
btoa():字符串或二进制值转为Base64编码
atob():Base64编码转为原来的编码
加密解密中文文字
encodeURIComponent():加密
decodeURIComponent():解密

上一篇:2021-09-26


下一篇:slice、substring、substr比较