1.String对象
1.1 创建字符串对象
//string:包装类对象,字面量创建的 字符串不能说是一个真正的字符串对象,
//调用字符串方法的时候,会暂时包装成String对象
//1.字面量
var str1 = "web1116";
console.log(str1);
console.log(typeof str1);
console.log(str1.charAt(1)); //e
//2.关键字new 创建
var str2 = new String("web1116");
console.log(str2);
console.log(typeof str2);
1.2 字符串属性
- length : 获取字符串长度
1.3 字符串方法
-
charAt(下标)
作用:获取对应下标位置的字符
-
charCodeAt(下标)
作用:获取对应下标字符的编码
-
indexOf(searchStr,index)
作用:查询一个字符串在另一个字符串中首次出现的位置,出现返回对应的下标,没有返回-1
1.4参数:
-
searchStr:必须的,需要查询的字符串
-
index:可选,开始查找的位置,默认是下标0
var str = "web1012web1012web"; var index = str.indexOf("10"); console.log(index);//3 var index = str.indexOf("17"); console.log(index);//-1 var index = str.indexOf("10",5); //从下标为5的位置开始查找 console.log(index); //10 //一般用于:看字符串中是否有某个特定的字符 例:验证小数 var str = "1256"; if(str.indexOf(".") != -1){ alert("小数") }else{ alert("整数") }
-
lastIndexOf(searchStr,index)
作用:查询一个字符串在另一个字符串中最后一次出现的位置,出现返回对应的下标,没有返回-1
参数:
-
searchStr:必须的,需要查询的字符串
-
index:可选,开始查找的位置,默认是str.length 从后往前找
var str = "web1116web1116web"; var index = str.lastIndexOf("10"); console.log(index);//10 从后往前找
-
-
substring(start,end):截取
作用:提取字符串中介于两个指定下标的字符,包括开始下标,不包括结束下标
参数:
- start:可选,开始截取的下标位置,默认是0
- end:可选,结束截取的下标位置,默认是str.length
-
slice(start,end) :截取
作用:提取字符串中介于两个指定下标的字符,包括开始下标,不包括结束下标
参数:
- start:可选,开始截取的下标位置,默认是0
- end:可选,结束截取的下标位置,默认是str.length
var str = "431102197812123333";
//5.1 substring(start,end) : 提取字符串中介于两个指定下标的字符,包括开始下标,不包括结束下标
//start:可选,开始截取的下标位置,默认是0
//end:可选,结束截取的下标位置,默认是str.length
var s = str.substring(6); //下标为6开始,默认到最后
console.log(s); //197812123333
var s = str.substring(6,10);
console.log(s); //1978
//5.2 slice(start,end) : 提取字符串中介于两个指定下标的字符,包括开始下标,不包括结束下标
//start:可选,开始截取的下标位置,默认是0
//end:可选,结束截取的下标位置,默认是str.length
var s = str.slice(6,10);
console.log(s); //1978
//区别
var str = "abcedfg";
console.log(str.substring(5,1)); //bced 自动调整大小顺序
console.log(str.slice(5,1)); //"" 不调
console.log(str.substring(3,-1)); //默认负数为0 abc
console.log(str.slice(3,-1)); //截取倒数第几个 edf
var arr = ["[object Object]","[object Array]","[object Function]"];
//循环数组,打印所有具体数据类型 Object Array Funtion
for(var i = 0;i<arr.length;i++){
console.log(arr[i].slice(8,-1));
}
-
substr(start,length)
作用:从那开始,截取几个
var str = "431102197812123333"; console.log(str.substr(6,4));
-
replace():替换
作用:替换字符串,一次只能替换一个
参数:
- searchVale:将要被替换掉的内容
- replaceValue:替换的内容
//1.str.replace(将要被替换掉的内容,替换的内容) 替换一次只能换一个 //字符串的方法不会影响到原来的字符串,返回一个操作好的新的字符串 var str = "ui1116ui1116"; str = str.replace("ui","web"); str = str.replace("ui","web"); console.log(str); var str = "13144447890"; str = str.replace(str.substr(3,4),"****"); console.log(str);
-
大小写转换 不区分大小写比较
-
toUpperCase():转大写
-
toLowerCase():转小写
var s1 = "aArT5"; var s2 = "aart5"; console.log(s1==s2); //false 一位一位比较,比较的是编码 //转换为大写:toUpperCase(); console.log(s1.toUpperCase()); //AART5 //转换为小写:toLowerCase(); console.log(s1.toLowerCase());//aart5 //不区分大小写比较 比较的时候转换为一样的(小写,大写) console.log(s1.toLowerCase()==s2.toLowerCase());//true
-
-
分割
-
split(splitter,length):按分割标记,将字符串分割成数组
var date = "2020-12-23"; var arr = date.split("-"); console.log(arr); // ["2020", "12", "23"] var str = "http://item.taobo.com/item.html?a=1&b=2&c=&d=xxx&e"; console.log(str.substring(str.indexOf("?")+1)); console.log(str.split("?")[1]);
-
-
去除空格
-
trim():去除首尾空格
-
trimLeft():去除左空格
-
trimRight():去除右空格
//11.trim() : 去除字符串首尾空格 var str=" hello world "; console.log("|"+str+"|"); console.log("|"+str.trim()+"|"); console.log("|"+str.trimLeft()+"|"); console.log("|"+str.trimRight()+"|");
-
-
常用的字符串方法
- charAt()
- indexOf()
- 截取 substring,substr,slice
- replace
- split
高频面试题
-
http://item.taobo.com/item.html?a=1&b=2&c=&d=xxx&e,请写
一段js程序提取url中各个get参数(参数名和参数个数不确定),将其key-value
形式返回到一个json结构中,如{a:“1”,b:“2”,c:“”,d:“xxx”,e:undefined}操作json(对象) var obj = { "name":"web" } console.log(obj.name); //对象.属性名 obj.age = 10;//赋值 对象.属性名(key) = 属性值(value)
实现
var str = "http://item.taobo.com/item.html?a=1&b=2&c=&d=xxx&e"; var json = {}; //1.获取get参数(?号后面的) str = str.split("?")[1]; console.log(str); //a=1&b=2&c=&d=xxx&e //2.将联系的一段get参数分割成一对一对 var arr = str.split("&"); console.log(arr); //["a=1", "b=2", "c=", "d=xxx", "e"] //3.将数组中的每一组数据,分割开,分别作为json的key和value for (var i = 0; i < arr.length; i++) { var a = arr[i].split("="); //["a",1] json[a[0]] = a[1]; } console.log(json);