字符串的常用方法

287 阅读3分钟

一、字符串的创建 两种方式

1.字面量 引号之间的就是字符串

var str = "dfdafd";
console.log(str);//dfdafd

2.内置构造函数创建方式;

var str = new String("abc");
console.log(typeof str);//object
console.log(str);//String {"abc"}

二、包装对象的概念 (重点)

var str = "abcd";
// js系统内部会把str 包装成一个对象 
function fn(str,type){
     var newstr = new String(str);   //系统会自动把字符串包装成对象,就可以使用对象里的split方法 
     // newstr变成对象(包装对象)
     return newstr.split(type);  // 使用对象里的方法
     // 把包装对象在销毁掉 
}
var res = fn(str,"");
console.log(res);//(4) ["a", "b", "c", "d"]
 var str = "abcd";
var str = new String("abcd");  //内置构造函数创建字符串
console.log(typeof str);//object
var arr =  str.split("");
console.log(arr);//(4) ["a", "b", "c", "d"]

总结: .语法在js里属于 对象 的获取值的方式。万物皆对象。 后台系统会通过自己的构造函数来创建自己的一个临时对象,因为创建的只是一个临时对象,写的属性和方法只存在于临时对象上,引用完后随即销毁。

三.对象的split 方法 :可以根据指定的字符把字符串分成数组;(类比数组的join方法)

//第一种:通过"-"分割成数组
//var str="a-b-c-d";
//var arr=str.split("-");
//console.log(arr);//(4) ["a", "b", "c", "d"]

//第二种:通过""分割成数组
var str = "abcd";
var arr =  str.split("");//通过spli("")分割将字符串成数组
console.log(arr);//(4) ["a", "b", "c", "d"]
var newStr =  arr.join("");//通过数组方法join("")将数组转化成字符串
console.log(newStr);//abcd

四、数组的扁平化 : 把多维数组转成一维数组

var arr = [1, 2, [3, 4], 5, [6, [7, [8]]], 9];
// 1.把数组转成字符串 
// console.log(arr);
var str = arr.toString();
console.log(str);
// 2.把字符串切割成数组
var newarr = str.split(",");
console.log(newarr);  // 一维数组

五、字符串的常用方法

1.字符串拼接 通过一个 + 号

2.charAt: 可以根据字符串的索引获取具体的值

语法 :对应索引的字符 = 字符串.charAt(索引);

1)不会改变原本的字符串 2)返还值就是查找到的字符

var str = "abcdefg";
var res = str.charAt(2);
console.log(res);//c
console.log(str[2]);//c

3. charCodeAt :根据索引值返还该字符对应的ASCII编码 (十进制)

var str = "abcde";
var res =  str.charCodeAt(0);//a
console.log(res);//97

4.indexOf : 查找指定字符出现的索引位置值,如果没有找到该字符就返还-1

var str = "abcdefg";
var res = str.indexOf("d");
console.log(res);//3

5. substring :字符串截取

语法 :字符串.substring(开始截取索引的位置,结束截取索引的位置) (包前不包后)

(如果只传一个数,说明是以它开始截取位置,截取到末尾;)

1)不会改变原本的字符串 2)返还值是截取到的字符串;

var str="shenshd";
var res=str.substring(3,6);//包前不包后
var newres=str.substring(3);//只传一个数,就是从这个索引位置截取至末尾
console.log(res);//nsh
console.log(newres);//nshd

6.substr :字符串截取

语法 : 字符串.substr(开始截取的索引位置 , 截取字符的长度);

1.不会改变原本字符串 2. 返还值就是截取到的字符

var str="shenshd";
var res=str.substr(2,4);//从索引2开始截取,截取长度为4
console.log(res);//ensh

7.toLowerCase:可以将字母转成小写字母 toLowercase

语法:小写的字符 = 字符串.toLowerCase();

1.不会改变原本字符串 2.返还值是转换好的小写字母

var str = "aAbBcCdD";
var res = str.toLowerCase();
console.log(res);//aabbccdd

8.toUpperCase : 可以将字母转成大写字母 恰好跟toLowerCase相反

引申一个案例

function fn(type){
      if(type.toLowerCase()=='man'){
                console.log("输入是男的");
            }else{
                console.log("输入的是其他值");
            }
}
        fn("man");//这样不管这里输入man/mAN/....都可以实现"输入是男的"

9.replace :把字符串里的指定字符替换成另外的字符

var str = "abcdefg";
var res = str.replace("de", "**");
console.log(res);//abc**fg