字符串对象特点
- 有索引值
- 有长度
- 有序的
把字符串转换为字符串对象。索引值变成键,语法:
var 接收转换的变量 = new String(要转换的数据类型或者变量) 例:
var str = 'sd,j,snffsdfs';
var res = new String(str);
查看字符串中是否有某段字符
格式:
var 变量 = 要检查的字符串.indexOf(‘字符串’/变量);
如果没有这段字符就为假,会返回 -1。
为真就会返回这段字符在字符串的索引值,索引值从0开始
var str = 'adssadasd';//给str赋值
var cart = 'abc';//给cart赋值
var res = str.indexOf(cart);//这里会返回负一,因为str里没有cart变量的值
console.log(res);
var res1 = str.indexOf('a'); //这里会返回0,因为第一个a在str字符串里索引值是0
console.log(res1);
我们可以用if语句判断某段字符存不存在于这个字符串中
var str_init = 'uhaduahduaid';
var res = str_init.indexOf('xie');
if(res==-1){
console.log('没有')
}else{
console.log('有')
}
查找替换字符串中的某个值
格式:
var 变量 = 要查找的字符串.replace([‘修改的字符’],‘修改后的字符’)
/[‘修改的字符’]/g 匹配所有的’修改的字符’ g:所有的
str.replace(exp,newStr) 替换
第一个参数exp:是正则表达式,作用就是查找str中的字符
第二个参数newStr:表示新字符 ,作用就是用于替换exp匹配的字符。
例
var person = '美国人,日本人,韩国人';
var res = person.replace(/['人']/g,'佬');// 这里我们将所有的'人'改成了佬
console.log(res);//res返回值是改变过后的person
字符串的随机(验证码)
var str = '123456789abcdefghijklmnopqrstuvwxyz';//创建一个字符串
var res = '';// 定义一个空字符串用于输出
for(i=0;i<6;i++){ // 循环6次输出6个随机数
var random = Math.floor(Math.random()*str.length);// random是为了获取随机的字符串索引值
res += str[random]; //每次多拼接一个字符串 //str[random]是随机索引值的字符//每次循环多拼接一个字符
// console.log(res);
}
console.log(res);
数组转换为字符串
格式
var 接收转换的变量 = 要转换的字符串.toString()
这样数组本身不会改变,返回值是字符串。例:
var arr = [2.3,45,'ni',true]
var res = arr.toString(); //将arr数组转化为字符串类型并赋值给res这个变量
console.log(res,arr); // res是字符串类型的arr,arr还是之前的那个arr
数组转字符串并替换逗号
格式:
var 接收数据的变量 = 被转换的数组.join(‘要把逗号转换为的参数’)
var arr = [2.3,45,'ni',true]
var str = arr.join('|');// str是转换过后的字符串,这里将逗号转换为了|
console.log(str,arr);
分割字符串并转为数组类型
格式:
var 接收分割转换后的变量 = 被分割的字符串.split(切割的标志比如逗号,句号(这是第一个参数),需要的数量,不包括切割的标志) 例:
var arr = [2.3,45,'ni',true]
var res = arr.toString();//把arr数组转化为字符串形式,并赋值给res
var resultArr = res.split(',',2)// 这里我们把逗号作为切割标志并截取两个字符串长度
console.log(resultArr,res);//resultArr是切割转换后的数组,res没变
注意:如果不写第二个参数,默认为切割整个字符串。一二参数都不写那么数组就一个索引值,内容是整个字符串
截取字符串
截取字符串有两种方法
- var 接收被截取的字符串的变量 = 被截取的字符串.slice(第一个参数是截取的起点,会被截取到,参数是字符串的索引值,第二个参数是结束截取的位置,不会被截取到,参数是字符串的索引值)
例:
var str = 'a,b,c200.000defghijk';
var res = str.slice(2,7); //这里我们截取的是索引值为2的‘b’到索引值为6的‘0’结束,中间的,号也有索引值
console.log(res);//res的值就是'b,c200'
- var 接收被截取的字符串的变量 = 被截取的字符串.substr(第一个参数是截取的起点,会被截取到,参数是字符串的索引值,第二个参数是截取的长度)
例:
var str = 'a,b,c200.000defghijk';
var res1 = str.substr(3,5);//从索引值为3的字符开始截取一直截取5个赋值给res1
console.log(res1);// res1值为',c200'
第三种其实跟第一种一样就是api不一样,一个是slice一个是substring参数其实都是一样的
大写小写和查询编码值
- 全部变为小写
语法:
var 接收变为小写的字符串的变量 = 要变的字符串.toLowerCase();例
var str='ajhdsifusfkuySUFHUIWEFHUHUF';
var res = str.toLowerCase();
console.log(str,res);//str没变,res是str全小写状态
- 全部变为大写
语法:
var 接收变为大写的字符串的变量 = 要变的字符串.toUpperCase();例
var str='ajhdsifusfkuySUFHUIWEFHUHUF';
var res1 = str.toUpperCase();
console.log(res1,str);//str没变,res是str全大写状态
- 查询字符的编码值
语法:
var 接收输出的编码值 = 某个字符(多个字符只会解析第一个).charCodeAt();例:
var res3 = '2'.charCodeAt();
- 用索引值查询字符串中的某个字符
语法:
var 接收数据的变量 = 查询的字符串.charAt(某个字符串的索引值); 例:
var str='ajhdsifusfkuySUFHUIWEFHUHUF';
var res2 = str.charAt(6); //索引值为6的字符
console.log(res2)// 索引值为6的字符是'f'所以返回的是f