String字符串常用方法

133 阅读6分钟

[这可能是全网最易懂的文章了吧]

charAt( ),concat( ),indexOf( ),lastIndexOf( ),length,match( ),replace( ),search( ),slice( ),split( ),substring( ),toLowerCase( ),toUpperCase( )

1.charAt()

charAt():返回指定位置的字符

str.charAt(index):返回字符串str中第index位的字符

var str="I am qiuqiu"
var a=str.charAt(5)
console.log(a);//q
//注:就像 array的下标一样,位置从0开始进行计算的

2.concat()

concat():连接两个或多个字符串,返回一个新的字符串.(该方法没有改变原有字符串)

str.concat(str1, str2, ..., strX):将str与str1, str2, ..., strX连接成一个字符串

var str1="A"
var str2="B"
var str3="C"
        
var str4=str1.concat(str2)
var str5=str1.concat(str2,str3)
console.log(str4);//AB
console.log(str5);//ABC  

3.indexOf()

indexOf():返回某个指定字符串值在字符串中"首次"出现的位置,如果没有找到匹配的字符串则返回-1

str.indexOf(value,index):在str字符串中,从位置为index处寻找值为value的字符串,如果无index值,则从位置0也就是从头开始找
注:区分大小写

var str="I am qiuqiu"

var str1=str.indexOf("u")//从位置0也就是从头开始查找“u”第一次出现的位置
console.log(str1);// 7

var str01=str.indexOf("u",8)//从位置8开始查找“u”第一次出现的位置
console.log(str01);// 10
        
var str2=str.indexOf("f")//查找不存在的字符串
console.log(str2);// -1

var str3=str.indexOf("I")//查找开头的字符串
console.log(str3);// 0

var str4=str.indexOf("Q")//此方法区分大小写,所以"Q"是不存在的字符串
console.log(str4);//-1

4.lastIndexOf()

lastIndexOf():返回一个指定的字符串值在字符串中最后一次出现的位置。(从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。)如果没有找到匹配的字符串则返回-1

str.lastIndexOf(searchvalue,start):在str字符串中,从后向前检索字符串,计算子字符串最后出现的位置。在字符串中start处位置开始检索,没有指定 start 时,就从字符串的结尾开始检索。 注:区分大小写

var str="I am qiuqiu"

var str1=str.lastIndexOf("u")//从后往前查找"u"第一次出现的位置
console.log(str1);// 10

var str01=str.lastIndexOf("u",8)//以位置8为起点从后往前查找"u"第一次出现的位置
console.log(str01);// 7

var str2=str.lastIndexOf("f")//查找不存在的字符串
console.log(str2);// -1

var str3=str.lastIndexOf("I")//从后往前查找"I"第一次出现的位置
console.log(str3);// 0

var str4=str.indexOf("Q")//此方法区分大小写,所以"Q"是不存在的字符串
console.log(str4);//-1  

5.length

length:返回字符串的长度,也就是指其包含的字符的个数

str.length:是String 对象属性

var str="I am qiuqiu"
var l=str.length
console.log(l)//11  

6.match()

match():检查一个字符串是否匹配一个正则表达式。就是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回

str.match(regexp):在字符串str中找一个或多个与regexp匹配的文本。如果找到将返回一个存放了它找到的匹配文本的数组.否则将返回 null

//字符串匹配
var str="I am qiuqiu and do you love xiaoqiqi"
console.log(str.match("qi"));
//["qi", index: 5, input: "I am qiuqiu and do you love xiaoqiqi", groups: undefined]

var str="I am qiuqiu and do you love xiaoqiqi"
console.log(str.match("h"));
//null
            
//正则表达式匹配
var str="I am qiuqiu and do you love xiaoqiqi"
console.log(str.match(/qi/g));
//(4) ["qi", "qi", "qi", "qi"]

7.replace()

replace():用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串

str.replace(searchvalue,newvalue):查找searchvalue然后用newvalue替换掉

//1.当替换字符串时,当查找到第一个目标字符串就会停止替换.此处"pink"只能替换第一个"blue".
var str="I love Blue, I like blue shirts and blue pants"
var str1=str.replace("blue","pink")
console.log(str1);
//I love Blue, I like pink shirts and blue pants

// 2.用正则表达式/g即可全部替换,即:/目标字符串/g
var str2=str.replace(/blue/g,"pink")
console.log(str2)
//I love Blue, I like pink shirts and pink pants

// 3.用正则表达式/i可忽略大小写进行替换,即:/目标字符串/i
var str3=str.replace(/blue/gi,"pink")
console.log(str3)
//I love pink, I like pink shirts and pink pants  

8.search()

search():查找与正则表达式相匹配的值。如果查找成功,返回字符串中匹配的索引值。否则返回-1

string.search(searchvalue) 注:找到后就停止查找

var str="I am Qiuqiu"
var str1=str.search("qi")
console.log(str1);//8

var str2=str.search(/qi/i)// 正则忽略大小写查找 /i
console.log(str2);//5

var str3=str.search("f")//查找不存在的字符串
console.log(str3);//-1

9. substring()

substring():用于提取字符串里介于两个指定下标之间的字符

str.substring(from, to):从from处截取到to处的字符串,如果to被省略,那么返回的子串会一直到字符串的结尾。

注:该方法返回的子串包括开始from处的字符,但 包括结束to处的字符。

var str="I am qiuqiu"
var str1=str.substring(5,8)//截取位置5到7的子串
console.log(str1);//qiu

var str2=str.substring(5)//截取位置5到最后的子串
console.log(str2);//qiuqiu

var str3=str.substring(0)//截取位置0到最后的子串也就是截取全部字符串
console.log(str3);//I am qiuqiu

10.slice()

slice(): 提取字符串的一部分,并返回一个新字符串

str.slice(start,end):截取位置为start(包含)到 位置为 end(不包含)的子串.
注:若只有一个参数,如果这个数为非负数,则要提取的子串包括 start 到原字符串结尾的字符串;如果这个数为负数,则从字符串的尾部开始计算的位置.

例如[slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)]

var str="I am qiuqiu"
var str1=str.slice(5,8)//截取位置5到7的子串
console.log(str1);//qiu

var str2=str.slice(5)//截取位置5到最后的子串
console.log(str2);//qiuqiu

var str3=str.slice(0)//截取位置0到最后的子串也就是截取全部字符串
console.log(str3);//I am qiuqiu

var str4=str.slice(-3)//截取倒数第3个元素到最后1个元素
console.log(str4);//qiu

11.split()

split():把一个字符串分割成字符串数组

str.split(separator,limit):将separator作为分隔符分割成最大长度为limit的字符串数组,如果没有设置limit那么整个字符串都会被分割.

var str="I am qiuqiu"
var str1=str.split("")
console.log(str1);//(11) ["I", " ", "a", "m", " ", "q", "i", "u", "q", "i", "u"]

var str2=str.split(" ")
console.log(str2);//(3) ["I", "am", "qiuqiu"]

var str3=str.split(" ",2)//限制最大长度为2
console.log(str3);//(2) ["I", "am"]

var str4=str.split("i")//将i作为分隔符来分隔
console.log(str4);//(3) ["I am q", "uq", "u"]

12.toLowerCase()

str.toLowerCase():把字符串转换为小写

var str="I LOVE QIUQIU"
var str1=str.toLowerCase()
console.log(str1)//i love qiuqiu

13.toUpperCase()

str.toUpperCase():把字符串转换为大写

var str="i love qiuqiu,MUA~"
var str1=str.toUpperCase()
console.log(str1)//I LOVE QIUQIU,MUA~