WEB前端第二十五课——js字符串

1.字符串嵌套

  字符串可以嵌套使用

    在单引号包裹的字符串内部,应该使用双引号进行嵌套

    在双引号包裹的字符串内部,应该使用单引号进行嵌套

  在 json解析的时候字符串需要单引号,因此推荐在各种情况都使用单引号的方式进行声明

2.转义字符,用特殊的符号来替代在字符串中,容易引起歧义的内容

  \'   表示单引号

  \"  表示双引号

  一个字符串一般写在一行内,不要分成多行

  如果必须分成多行,可以采用反斜杠 “\” 作为连接符,或者将其分成多个字符串,通过拼接的方式进行组合

3.字符串长度

  ① 测量字符串长度:length属性,

    语法格式:字符串变量 length

  ② 字符索引:[]方法,

    在字符串后面接中括号,中括号内写数字,能够访问字符串中每一个字符

    代码示例:

      var name=Franklin;

      var firstname=name[0];

    一次只能索引一个字符,如需索引多个,则使用加号(+)连接符多次索引

    索引从0开始,0表示第一个字符

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

    两种方法均是获取指定位置字符,不同的是charAt()返回的是具体的字符,而charCodeAt()返回的是字符对应的Unicode编码

    代码示例;

      var name=Franklin;

      var cat=name.charAt(0);

      var ccat=name.charCodeAt(0);

    var cat结果为“F”,而var ccat结果为“70”

    两个重要的字符编码,A——65,a——97,其他字母累加即可

    如果index是负数,或者大于等于字符串长度的值,则 charCodeAt()返回的值为 NaN。

  ④ 字符串连接:concat()方法,

    将两个或多个字符串拼接起来,组成一个新的字符串,用法与加号(+)有相同之处

    语法格式:var str=str1.concat(str2,str3,……);

4.转义字符

  反斜杠 “\” 被称作转义字符

  转义字符可以将特殊字符转换为字符串字符,可以用于转义撇号、换行、引号等特殊字符

  常见转义符号:\' (单引号)、\" (双引号)、\\ (反斜杠)、\n (换行)、\r (回车)、\t (制表符)、\b (退格)、\f (换页符)

  \n、\r、<br/>区别

    \n,英文是 new line,表示使光标下移一格

    \r,英文是carriage return,表示使光标移到行首

    <br/>是浏览器换行

    总结:\n \r表示源代码换行(浏览器不解释),<br/>表示浏览器文字换行

5.字符串对象

  JavaScript中提供了另外一种字符串的声明方式,叫作字符串对象,使用 new关键字将字符串定义为一个对象

  语法示例:var newString=new  String('Franklin');

    var str1='frank’;  //(typeof  str1)返回值为 String

    var str2=new String('frank’);  //(typeof  str2)返回值为Object,String首字母必须大写

  通常不要创建 string对象,它会拖慢程序执行速度,并可能产生其他副作用

  字符串和字符串对象虽然效果相似,但它们是完全不同类型的数据

6. 字符串属性及方法

  substring,截取字符串

  substr,截取字符串(长度)

  slice,截取字符串

  indexOf,返回当前查找字符串的位置,如果没有返回-1

  lastindexOf,倒过来查找

  trim,去掉字符串两端的空格

  toUpperCase和toLowerCase,大小写转换

  localeCompare,比较两个字符串大小

  match,返回一个指定字符串的数组

  search,返回位置

  replace,替换字符串

  split,字符串切割,返回数组

7.substring截取字符串

  通过指定开始和结束位置,对字符串变量进行截取

  语法:str . substring(index1, index2);

  第一个参数表示截取的开始位置(包含index1),第二个参数表示结束位置(不包含index2)

  结束位置理论上应该大于开始位置,如果第一个参数值大于第二个参数值,substring方法会自动调换两个参数的位置

8.substr截取字符串

  通过指定开始截取的位置和截取的长度,对字符串变量进行截取

  语法:str . substr(num1, num2);

  substr方法的语法格式与substring方法很相似,但表达含义和用法差别很大,substr两个参数不能互换

9.slice截取字符串

  通过指定开始和结束位置,对字符串变量进行截取

  语法:str . slice(num1,num2);

  slice的两个参数不能互相调换位置,如果第一个参数大于第二个参数,则返回结果为一个空字符串

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

10.indexOf

  查找一个字符或字符串在另一个字符串中的位置

  语法:str . indexOf('sub’);

  字符串的查找是从源字符串开始处进行向后查找,且只针对首次出现的位置查找,返回值为所在位置的索引,如果查找失败则返回 -1

11.lastindexOf

  查找一个字符或字符串在另一个字符串中的位置

  语法:str . lastindexOf('subStr’);

  字符串的查找是从原字符串的末尾处进行向前查找,如果查找失败则返回 -1

12.indexOf和 lastindexOf还可以接受第二个参数,用于表示开始查找的位置

  对于indexOf而言,表示从这个位置开始向后查找,语法:str. indexOf('subStr', num);

  对于lastindexOf而言,表示从这个位置开始向前查找,语法:str.lastindexOf('subStr', num);

13.replace

  将查找到的首次出现的字符串替换成目标字符串,如果查找失败则不发生替换,而是将原字符串完整拷贝出来

  语法:str . replace('oldStr','newStr');

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

  replace方法只能替换首次出现的字符串,如果要替换多个, 需要依赖于正则表达式

14.trim

  去掉字符串两端多余的空格,中间部位的空格不受影响,语法:str . trim();

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

15.toUpperCase

  将字符串中的英文字母全部转换成大写字母

  语法:str .toUpperCase();

16.同LowerCase

  将字符串中的英文字母全部转换成小写字母

  语法:str .toLowerCase();

17.localeCompare

  根据本地的排序规则对两个字符串进行大小比较

  语法:str1 .localCompare(str2);

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

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

18.match

  查找原字符串是否匹配某个子字符串,返回结果是匹配的子字符串信息数组,如果没有找到则返回null

  返回的数组内容包含:寻找的子字符串、子字符串位置索引、原字符串

  语法:str . match('substr');

  示例:var string= 'hello world!';

     string.match('hello');  //结果:['hello', index:0, input:'hello world!']

  match方法只能查找到匹配的第一个字符串,但通过正则表达式的方式可以查找到所有匹配的字符串

19.search

  与match方法相似,都是查找子字符串在指定字符串的位置信息

  不同的是search方法返回的结果为下标(索引),如果没有找到匹配字符串则返回 -1

  语法:str . search('substr');

  示例:var string= 'hello world!';

     string.search('hello');  //结果:0

20.split

  根据指定的符号将字符串进行分割,分割后的所有子字符串整合成为一个数组返回

  如果无法分割,则只返回一个元素——字符串本身

  语法:str . split('symbol');

  示例:var string = 'see you soon!’

     string . split(' ');    //返回结果:['see’,'you’,'soon’]

  分隔符号不同,返回的数组就可能不同

21.JavaScript字符集

  js使用的是Unicode字符集,在JavaScript引擎内部,所有字符都用Unicode表示

  js不仅以Unicode存储字符,还允许在程序中直接使用Unicode编码表示字符

  解析代码时,js会自动识别一个字符是字面形式表示,还是Unicode形式表示,输出给用的时候,所有字符都会转成字面形式

  示例,var eg = '\u00A9';

     console.log(eg); //©

    \n(换行符),\u000A

    \'(单引号),\u0027

    \"(双引号),\u0022

    \\(反斜杠),\u005C

22.字符串Base64编码

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

  JavaScript中为字符串提供了两种有关Base64编码的方法:

    btoa()  字符串或二进制值转换为Base64编码(加密)

    atob()  Base64编码转换为原来的编码(解密)

  示例:

    var string = 'frank';

    console.log(btoa(string));  //ZnJhbms=

    var string = 'ZnJhbms=';

    console.log(atob(string));  //frank

  这两种方法不适合非ASCII码的字符,但可以通过中间插入一个转码环节的方式,使用这两种方法将非ASCII码字符与Base64进行转换

  这两种方法限于解析非中文代码,解析中文(包括英文)的方法为:encodeURIComponent() (加密)、decodeURIcomponent() (解密)

  可以通过将中文加密后,再进行Base64加密,解密时操作顺序相反

(0)

相关推荐