九、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字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南