15种操作string的⽅法
1. 字符串去除⾸尾空格 —— trim()
说明:去除字符串两边的空⽩。
需求场景:⽤户搜索前去除输⼊的⾸尾空格。
⽤法: im()
例⼦:
let str = " ⽩⾊不⽩,⿊⾊不⿊,我...我不喜欢你 "
let result = im()
console.log(result); // 控制台打印:"⽩⾊不⽩,⿊⾊不⿊,我...我不喜欢你"
js在字符串中添加字符2. 字符串替换指定字符(串)—— replace()
说明:字符串替换字符还是replace()最强⼤~默认替换第⼀个符合条件的字符串,也可⽤正则做全局匹配
需求场景:字符串的替换,关键词的屏蔽隐藏等
**⽤法:** place(searchvalue,newvalue)
例⼦:
let str = "你知道吗?世界上有60亿⼈,宇宙有60万亿⼩⾏星,你⽐⼩⾏星还要珍贵⼀万倍"
let result1 = place("亿","个")
let result2 = place(/亿/g,"个")
console.log(result1) // 控制台打印:"你知道吗?世界上有60个⼈,宇宙有60万亿⼩⾏星,你⽐⼩⾏星还要珍贵⼀万倍"
console.log(result2) // 控制台打印:"你知道吗?世界上有60个⼈,宇宙有60万个⼩⾏星,你⽐⼩⾏星还要珍贵⼀万倍"
3. 字符串合并 —— concat()
说明:连接两个或更多字符串,并返回新的字符串。(悄悄告诉你,数组也可以使⽤哦~)
需求场景:字符串合并展⽰。
⽤法: at()
例⼦:
let str1 = "我有很多好听的情话,"
let str2 = "可⾯对你都不敢说不出⼝。"
let result = at(str2)
console.log(result) // 控制台打印:"我有很多好听的情话,可⾯对你都不敢说不出⼝。"
4. 字符串转数组 —— split()
说明:把字符串通过特定字符分割为字符串数组,split还可以使⽤正则表达式实现拆分多个分隔符。
需求场景:字符串转数组进⾏遍历等操作。
⽤法1: string.split()
⽤法2: string.split(/[*]/)
例⼦:
let str = "张三,李四;王五"
let result1 = str.split(',')
let result2 = str.split(/[,;]/)
console.log(result1) // 控制台打印:["张三", "李四;王五"]
console.log(result2) // 控制台打印:["张三", "李四", "王五"]
5. 字符串转数组 —— [...string]
**说明:** 说起来,这并不是字符串的⽅法,主要是我觉得ES6语法中的扩展操作符的...语法是转数组最简洁的⽅法。它和split()区别在于:...语法不根据特定字符切割,⽽是把每个字符都当作单独的元素添加到数组中。
**需求场景:** 字符串全部分割成字符数组。
⽤法: [...string]
例⼦:
let str = '这是⼀个字符串string'
let arr = [...str]
console.log(arr) // 控制台打印:["这", "是", "⼀", "个", "字", "符", "串", "s", "t", "r", "i", "n", "g"]
6. 字符串反转 —— [...string].reverse().join("")
说明:这个也不能算是字符串⽅法,但是好⽤。本质上还是转成数组,数组反转之后,再拼接成字符串。
需求场景:将当前字符串反转输出
⽤法: [...string].reverse().join("")
例⼦:
let str = "两极反转,龙卷风摧毁停车场!"
let result = [...str].reverse().join("")
console.log(result) // 控制台打印:!场车停毁摧风卷龙,转反极两
7. 字符串的多次复制 —— repeat ()
说明:复制字符串指定次数,并将它们连接在⼀起返回。
需求场景:字符串需要进⾏ n 次⾃动复制。
⽤法: peat(n)
例⼦:
let str1 = '复制'
let result = peat(2)
consol.log(result) // 控制台打印:复制复制
let str2 = '10'
let result = peat(5)
console.log(result) // 控制台打印:1010101010
8. 字符串是否包含某字符(串)—— search()
**说明:**检索字符串中指定的或与正则表达式相匹配的⾸个⼦字符串。如果匹配到了则返回匹配字符串⾸字符下标,如果没有匹配到,则返回 -1。
需求场景:字符串内关键字的搜索查询定位。
⽤法: string.search(searchvalue)。
例⼦:
let str = "今天的夜⾊很好,⽉亮也很圆,唯⼀遗憾的是,我不是从你的窗⼦⾥看到的⽉亮。"
let result1 = str.search("⽉亮")
let result2 = str.search(/[,。]/)
console.log(result1) // 控制台打印:8
console.log(result2) // 控制台打印:7
9. 字符串内是否包含某字符(串)—— includes()
说明: includes()可选择从某处下标之后开始查,返回true或false。第⼆个参数代表从某下标处开始查,忽略则代表从下标0开始查。
它和search()区别在于:search()返回指定下标,includes()返回true或false;search()不能从指定下标开始查,includes()可以从指定下标处开始查。
需求场景:判断字符串中是否有不合法字符等
⽤法: string.includes(searchvalue, start)
例⼦:
let str = "没有夏⽇的的凉风,也没有冬⽇的暖阳,它们只是恰好出现在了合适的时间罢了"
let result1 = str.includes("冬⽇")
let result2 = str.includes("冬⽇",20)
console.log(result1); // 控制台打印:true
console.log(result2); // 控制台打印:false
10. 字符串中指定的字符串值在⾸次或最后⼀次出现的位置 —— indexOf() 和 lastIndexOf()
说明:
indexOf()⽅法可返回某个指定的字符串值⾸次出现的位置,即从前向后搜索。如果指定第⼆个参数 start,则在字符串中的指定位置开始从前向后搜索。lastIndexOf()⽅法可返回某个指定的字符串值最后出现的位置,即从后向前搜索。如果指定第⼆个参数 start,则在字符串中的指定位置从后向前搜索。
需求场景:关键字⾸次或最后⼀次出现的位置
⽤法1: string.indexOf(searchvalue,start) 指定的字符串值⾸次出现的位置
⽤法2: string.lastIndexOf(searchvalue,start) 指定的字符串值最后出现的位置
例⼦:
let str = "你来⼈间⼀趟,你要看看太阳。和你的⼼上⼈⼀起⾛在街上,了解她,也要了解太阳"
let result1 = str.indexOf("太阳")
let result2 = str.indexOf("太阳",10) // 从10下标的字符开始查"太阳",查范围是"太阳。和你的⼼上⼈⼀起⾛在街上,了解她,也要了解太阳",下标还是相对原字符串⽽⾔的,因此返回11。let result3 = str.lastIndexOf("太阳")
let result4 = str.lastIndexOf("太阳",10) // 0-10下标的字符串为"你来⼈间⼀趟,你要看看",没有"太阳",返回-1
console.log(result1) // 控制台打印:11
console.log(result2) // 控制台打印:11
console.log(result3) // 控制台打印:35
console.log(result4) // 控制台打印:-1
11. 字符串转⼤⼩写 —— toLowerCase() 和 toUpperCase()
说明:字符串⼤⼩写之间的转换
需求场景:⽹址,英⽂名,⾸字母⼤写等要求。
⽤法1: LowerCase() 转成⼩写字母
⽤法2: UpperCase() 转成⼤写字母
例⼦:
let str = "For you, A thousand times over"
let result1 = LowerCase()
let result2 = UpperCase()
console.log(result1) // 控制台打印:"for you, a thousand times over"
console.log(result2) // 控制台打印:"FOR YOU, A THOUSAND TIMES OVER"
12. 字符串填充到指定长度 —— padStart () 和 padEnd ()
说明:字符串填充指定字符到指定长度
需求场景:字符串长度不⾜,需要补充⾄指定长度n,如年⽉⽇,隐藏⼿机号,隐藏昵称等。
⽤法1: string.padStart(n,'补充内容') 从字符串前添加补充内容。
⽤法2: string.padEnd (n,'补充内容') 从字符串后添加补充内容。
例⼦:
// 在字符串前补充"-",直到字符串的长度为5
let str1 = '预备开始'
let result = str1.padStart(5, '-')
console.log(result) // 控制台打印:"---预备开始"
//在末尾添加"*",直到字符串的长度为11
let str2 = "184"
let result = str2.padEnd(11, "*")
console.log(result) // 控制台打印:"184********"
13. 字符串是否以特定字符(串)开头或结尾 —— startsWith()、endsWith()
说明:⽤于检测字符串是否以指定的⼦字符串开始。如果是以指定的⼦字符串开头返回 true,否则 false。startsWith()、endsWith()⽅法区分⼤⼩写。第⼆个参数代表从某下标处
开始判断是否以特定字符(串)开头或结尾,忽略则startsWith()从下标0开始检测,endsWith()从字符串最后⼀位下标开始检测。
值得注意的是:
当startsWith()的第⼆个参数如果超出了当前字符串的最⼤长度,依旧⽣效,返回false。
当endsWith()的第⼆个参数如果超出了当前字符串的最⼤长度,会不⽣效,改为从字符串最后⼀位下标开始检测。
需求场景:判断字符串是否以指定字符开头或结尾
⽤法1: string.startsWith(searchvalue, start)
⽤法2: dsWith(searchvalue, start)
例⼦:
let str = "过去的时候,我们相视⼀笑,就已过了⼤半辈⼦"
let result1 = str.startsWith("过去")
let result2 = str.startsWith("过去",10)
let result3 = dsWith("半辈⼦")
let result4 = dsWith("半辈⼦",20)
console.log(result1); // 控制台打印:true
console.log(result2); // 控制台打印:false
console.log(result3); // 控制台打印:true
console.log(result4); // 控制台打印:false
14. 字符串长度计算 —— length
说明: length属性不仅是数组的属性,同时伪数组,字符串都有length属性。但是遇到某些⽣僻字如“ ”或者表情符号“ ”,它们的length为2,这时候返回的length可能不是我们真
正想要的。这是因为js字符串是由16位的代码单元组成,⽽不是由Unicode代码点组成。同时js使⽤两个代码单元表⽰216及其以上的Unicode代码点。这两个代码单元被称为代
理对。⼀个代码单元被默认为1个长度单位,像“ ”或者“ ”是由两个代码单元组成的代理对,因此它们的length为2。
需求场景:求出当前字符串长度
⽤法: string.length
例⼦:
let str = "相约⽩头偕⽼,你却悄悄秃了头"
let result = str.length
console.log(result) // 控制台打印:14
15. 字符串截取 —— substr() 和 slice() 和 substring()
说明:字符串截取和拼接是字符串最常⽤也是最易错的⽅法。主要原因是 substr() 、 slice() 和 substring()的区别有很多⼩伙伴还不太明⽩。
substr():
参数⼀(必须):⼀个整数,要开始截取字符的下标,如为负则代表从尾部开始截取。参数⼆(可选):⼀个整数,要截取字符的数量。如果省略该参数,则默认为string.length,即当前字符串的长度。
slice() :
参数⼀(必须):⼀个整数,要开始截取字符的下标,如为负则代表从尾部开始截取。参数⼆(可选):⼀个整数,要结束截取字符的下标,如为负则代表从尾部截取多少个字符。如果省略该参数,则默认为string.length,即当前字符串的长度。substring() :
参数⼀(必须):⼀个⾮负的整数,要开始截取字符的下标。参数⼆(可选):⼀个⾮负的整数,要结束截取字符的下标。如果省略该参数,则默认为string.length,即当前字符串的长度。
需求场景:截取指定下标指定长度的字符串
⽤法1: string.substr(start,length)
⽤法2: string.slice(start,end)
⽤法3: string.substring(start,end)
例⼦:
let str = '0123456789'
let result1 = str.substr(2,5) // 从下标2开始截取,截取5位
let result2 = str.slice(2,5) // 从下标2开始截取,截取到下标5(不含下标5)
let result3 = str.substring(2,5) // 从下标2开始截取,截取到下标5(不含下标5)
console.log(result1) // 控制台打印:23456
console.log(result2) // 控制台打印:234
console.log(result3) // 控制台打印:234
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论