String

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);
    
    
  • 15
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值