字符串又称作包装数据类型,当我们对字符串进行操作时,字符串会把自己包装成伪数组的形式
所谓的伪数组,就是像数组一样,可以使用[]语法通过索引下标,来进行操作
并且具有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
如果字符串中有多个匹配的内容,indexOf()返回的是第一个匹配内容的索引下标
查询字符串中是否有某个字符,返回的是最后一个匹配内容的索引下标
参数一:需要查询的字符
参数二:开始检索的位置,如果省略该参数,则会从字符串的最后一个字符开始检索
字符串所有字符大写
不改变字符串的原始内容
要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身
字符串所有字符小写
不改变字符串的原始内容
要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身
一般是做验证码判断时,会统一输入的内容和验证码为都是大写或者小写字符,再来做比较判断
字符串转化为数组
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(替换后的内容)拼接为字符串
字符串内容的替换
参数1:原始的要替换走的内容
参数2:原来没有要替换进来的新内容
不改变字符串的原始内容
要改变字符串的原始内容,必须要将函数方法的执行结果返回值,赋值给字符串本身
默认执行懒惰模式,只替换第一个符合规范的内容
如果需要替换所有符合规范的内容,必须要使用正则表达式
所谓字符串的截取,就是从原始字符串中获取一部分内容,作为新的字符串
方法一:str.substr(参数一,参数二)
方法二:str.substring(参数一,参数二)
从 字符串中随机截取或者获取一个字符 , 拼接生成新的字符串
新的字符串,就是随机的验证码
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 }
方法一:
获取最后一个点的索引下标
从最后一个点索引下标+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();
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(',')