九、JavaScript字符串

2021/7/17 12:35:02

本文主要是介绍九、JavaScript字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、基本概念

  • 字符串又称作包装数据类型,当我们对字符串进行操作时,字符串会把自己包装成伪数组的形式

  • 所谓的伪数组,就是像数组一样,可以使用[]语法通过索引下标,来进行操作

  • 并且具有length属性

  • 但是伪数组的操作方法和数组不同,例如 push()、pop()、join()、forEach()等等,伪数组往往不能使用

  • 支持for循环和for...in循环,forEach循环不支持

1 var str = 'abcdefghijklmn';
2 
3 // 通过[]语法和索引下标,调用具体的数据
4 console.log(str[4]);
5 
6 // 伪数组是可以通过设定length属性来删除数组单元的
7 console.log(str.length);

二、字符串的方法

1、变量.toString()

其他类型转字符串类型

2、str.indexOf(参数一,参数二)

查询字符串中是否有某个字符

参数一:需要查询的字符

参数二:查询起始位置的索引下标

  • 查询字符时,区分大小写

  • 返回值:匹配字符的索引下标,没有匹配内容,返回值是 -1

  • 如果字符串中有多个匹配的内容,indexOf()返回的是第一个匹配内容的索引下标

3、str.lastIndexOf(参数一,参数二)

查询字符串中是否有某个字符,返回的是最后一个匹配内容的索引下标

参数一:需要查询的字符

参数二:开始检索的位置,如果省略该参数,则会从字符串的最后一个字符开始检索

4、str.toUpperCase()

字符串所有字符大写

  • 不改变字符串的原始内容

  • 要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身

5、str.toLowerCase()

字符串所有字符小写

  • 不改变字符串的原始内容

  • 要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身

  • 一般是做验证码判断时,会统一输入的内容和验证码为都是大写或者小写字符,再来做比较判断

6、str.split(间隔符号)

字符串转化为数组

1 var str = '1,2,3,4,5,6,7';
2 var arr = str.split(',');
3 console.log(arr); // [1,2,3,4,5,6,7]

关键词替换:将字符串用str.split(要替换的内容)分割为数组,再使用arr.join(替换后的内容)拼接为字符串

7、str.replace(参数一,参数二)

字符串内容的替换

  • 参数1:原始的要替换走的内容

  • 参数2:原来没有要替换进来的新内容

  • 不改变字符串的原始内容

  • 要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身

  • 默认执行懒惰模式,只替换第一个符合规范的内容

  • 如果需要替换所有符合规范的内容,必须要使用正则表达式

8、字符串的截取

所谓字符串的截取,就是从原始字符串中获取一部分内容,作为新的字符串

方法一:str.substr(参数一,参数二)

  • 参数一:指定截取的起始位置
    • 正数:正常下标截取
    • 负数:从倒数字符串开始截取
  • 参数二:指定截取的字符串长度
    • 只定义参数一,从指定的位置开始,截取至字符串结束
    • 正数,指定截取长度
    • 负数,截取截取结果是空字符串

方法二:str.substring(参数一,参数二)

  • 参数一:截取起始字符的索引(包含当前索引)
  • 参数二:截取结束字符的索引(不包含当前索引)

三、字符串的应用

1、随机验证码

  • 从 字符串中随机截取或者获取一个字符 , 拼接生成新的字符串

  • 新的字符串,就是随机的验证码

 1 // 允许出现重复的字符
 2 var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
 3 
 4 // 存储验证码
 5 var newStr = '';
 6 
 7 for(var i = 1 ; i <= 6 ; i++){
 8   // 随机数的范围是 0 --- str.length-1
 9   var num = parseInt(Math.random()*(str.length-1+1-0) +0);
10   // 通过随机数,作为索引下标,获取字符,拼接生成新的字符串
11   newStr += str[num];
12 }
 1 // 不允许出现重复字符
 2 var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
 3 
 4 // 存储验证码
 5 var newStr = '';
 6 
 7 for(var i = 1 ; i <= 6 ; i++){
 8   // 随机数的范围是 0 --- str.length-1
 9   var num = parseInt(Math.random()*(str.length-1+1-0) +0);
10   // 新字符串中没有str[num]当前随机数获取的字符,执行写入操作
11   if(newStr.indexOf( str[num]) === -1){
12     newStr += str[num];
13   }else{
14     // 生成重复字符,i--,再循环一次
15     i--;
16   }
17 }
 1 // 使用while循环来实现
 2 var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
 3 
 4 // 存储新字符串
 5 var newStr = '';
 6 
 7 // 只要新字符串长度不是6,就循环
 8 while (newStr.length !== 6) {
 9   // 随机数的范围是 0 --- str.length-1
10   var num = parseInt(Math.random() * (str.length - 1 + 1 - 0) + 0);
11   // 新字符串,没有当前获取的字符,就执行写入操作
12   if (newStr.indexOf(str[num]) === -1) {
13     newStr += str[num];
14   }
15 }

2、获取扩展名

方法一:

  • 获取最后一个点的索引下标

  • 从最后一个点索引下标+1的位置截取

1 var fileName = '123.456.789.png';
2 var ext = fileName.substr(fileName.lastIndexOf('.')+1);

方法二:

  • 将字符串按照点间隔,转化为数组

  • 数组前面的单元不管,最后一个单元一定存储的是扩展名

  • 使用 pop() 方法,取出数组的最后一个单元

1 var fileName = '123.456.789.png';
2 var arr = fileName.split('.');
3 var ext = arr.pop();

3、多维数组转一维数组

1 const arr = [1,2,3,4,5,[6,7,8,9,[10,11,12,[13,14,15,16,[17,18,[19,20]]]]]];
2 
3 // 将多维数组, 使用toString()、String()将数组转化为字符串
4 let str = String(arr);
5 
6 // 再以逗号为间隔,转化为数组
7 const newArr = str.split(',')

 



这篇关于九、JavaScript字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程