• JavaScript之字符串常用方法


    方法作用
    charAt()返回指定索引位置处的字符
    concat()返回一个两个或者两个以上的字符串拼接的字符串,并不影响原字符串
    indexOf()返回一个字符在字符串中首次出现的位置
    lastIndexOf()返回一个字符在字符串中最后一次出现的位置
    localeCompare()比较两个字符串
    split()使用指定的分隔符将一个字符串拆分为多个子字符串,并将其以数组形式返回
    slice()截取字符串(起始点,结束点)
    substring()截取字符串(起始点,结束点)
    substr()截取字符串(起始点,长度)
    match()在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,并返回一个包含该搜索结果的数组
    replace()替换文本
    search()搜索字符
    toLocaleLowerCase()把字母转换成小写(考虑宿主环境的当前区域设置)
    toLocaleUpperCase()把字母转换成大写(考虑宿主环境的当前区域设置)
    toLowerCase()把字母转换成小写
    toUpperCase()把字母转换成大写
    includes()检测目标字符串对象是否包含某个字符
    startsWith()检测当前字符是否是目标字符串的起始部分
    endsWith()检测当前字符是否是目标字符串的结尾部分
    repeat()将字符串重复指定次数

     1、charAt()

    返回指定索引位置处的字符。类似于数组用中括号获取相应下标位置的数据。

    1. var str = 'abcdefg';
    2. console.log(str.charAt(3)) // d
    3. console.log(str[3]) // d

    2、concat()

    类似数组的concat(),用来返回一个合并拼接两个或两个以上字符串。原字符串不变。

    1. var str1 = 'abcd';
    2. var str2 = '1234';
    3. console.log(str1.concat(str2)); // abcd1234
    4. console.log(str1); // abcd
    5. console.log(str2); // 1234

    3、indexOf()  lastIndexOf()

    indexOf():返回一个字符在字符串中首次出现的位置

    lastIndexOf():返回一个字符在字符串中最后一次出现的位置

    1. var str = 'abcddbca';
    2. console.log(str.indexOf('b')) // 1
    3. console.log(str.lastIndexOf('b')) // 5

    4、localCompare()

    localeCompare() 方法用本地特定的顺序来比较两个字符串。localeCompare 方法对 stringVar 和 stringExp 执行区分区域设置的字符串比较,并返回以下结果之一,这取决于系统默认区域设置的排序顺序:-1,如果 stringVar 排在 stringExp 之前。+1,如果 stringVar 排在 stringExp 的后面。 如果两个字符串相等,则为 0(零): `

    1. str1 = 'GBDCFEA'
    2. var strArr = str1.split('').sort(function(strVar, strExp){
    3. return strVar.localeCompare(strExp)
    4. })
    5. console.log(strArr.join('')) // ABCDEFG

    5、split()

    使用指定的分隔符将一个字符串拆分为多个子字符串数组并返回,原字符串不变。

    1. const str = 'A*B*C*D*E*F*G';
    2. console.log(str.split('*')) // 输出 ["A", "B", "C", "D", "E", "F", "G"]

    6、slice()

    提取字符串的片断,并把提取的字符串作为新的字符串返回出来。原字符串不变。

    1. const str = 'abcdefg'
    2. // 不传递参数默认复制整个字符串
    3. console.log(str.slice()) // 'abcdefg'
    4. // 传递一个,则为提取的起点,然后到字符串结尾
    5. console.log(str.slice(1)) // 'bcdefg'
    6. // 传递两个,为提取的起始点和结束点(不包括结束点)
    7. console.log(str.slice(2, str.length-1)) // 'cdef'

    7、substr(), substring()

    截取一个字符串的片段,并返回截取的字符串

    substrsubstring这两个方法不同的地方就在于参数二,substr的参数二是截取返回出来的这个字符串指定的长度substring的参数二是截取返回这个字符串的结束点,并且不包含这个结束点。而它们的参数一,都是一样的功能,截取的起始位置

    注意事项:substr的参数二如果为0或者负数,则返回一个空字符串,如果未填入,则会截取到字符串的结尾去。substring的参数一和参数二为NAN或者负数,那么它将被替换为 0。

    1. const str = 'ABCDEFGHIJKLMN'
    2. console.log(str.substr(2)) // 输出 'CDEFGHIJKLMN'
    3. console.log(str.substring(2)) // 输出 'CDEFGHIJKLMN'
    4. console.log(str.substr(2, 9)) // 输出 'CDEFGHIJK'
    5. console.log(str.substring(2, 9)) // 输出 'CDEFGHI'

    8、match()

    match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,并返回一个包含该搜索结果的数组。

    注意事项:如果 match方法没有找到匹配,将返回null。如果找到匹配,则 match方法会把匹配到以数组形式返回,如果正则规则未设置全局修饰符g,则 match方法返回的数组有两个特性:inputindexinput属性包含整个被搜索的字符串。index属性包含了在整个被搜索字符串中匹配的子字符串的位置。

    1. const str = '2018年结束了,2019年开始了,2020年就也不远了'
    2. const reg = /\d+/g // 这里是定义匹配规则,匹配字符串里的1到多个数字
    3. console.log(str.match(reg))
    4. // 输出符合匹配规则的内容,以数组形式返回 ['2018', '2019', '2020']
    5. console.log(str.match('20'))
    6. // 不使用正则 ["20", index: 0, input: "2018年结束了,2019年开始了"]

    9、replace()

    接收两个参数,参数一是需要替换掉的字符或者一个正则的匹配规则,参数二,需要替换进去的字符,仔实际的原理当中,参数二,你可以换成一个回调函数。

    1. const str = '2018年结束了,2019年开始了,2020年就也不远了'
    2. const rex = /\d+/g // 这里是定义匹配规则,匹配字符串里的1到多个数字
    3. const str1 = str.replace(rex, '****')
    4. console.log(str1) // 输出:"****年结束了,****年开始了,****年也不远了"
    5. const str2 = str.replace(rex, function(item){
    6. console.log(arguments) // 看下面的图片
    7. const arr = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
    8. let newStr = ''
    9. item.split('').map(function(i){
    10. newStr += arr[i]
    11. })
    12. return newStr
    13. })
    14. console.log(str2)
    15. // 输出:贰零壹捌年结束了,贰零壹玖年开始了,贰零贰零年也不远了

     10、search()

    在目标字符串中搜索与正则规则相匹配的字符,搜索到,则返回第一个匹配项在目标字符串当中的位置,没有搜索到则返回一个 -1

    1. const str = '2018年结束了,2019年开始了,2020年就也不远了'
    2. const reg = /\d+/i // 这里是定义匹配规则,匹配字符串里的1到多个数字
    3. console.log(str.search(reg)) // 输出 0 这里搜索到的第一项是从位置0开始的

    11、toLocaleLowerCase(), toLocaleUpperCase(),toLowerCase(),toUpperCase()

    toLocaleLowerCase 和 toLowerCase都是把字母转换成小写,toLocaleUpperCase 和 toUpperCase则是把字母转换成大写。toLocaleLowerCase 和 toLocaleUpperCase 方法转换字符串中的字符,同时考虑到宿主环境的当前区域设置。大多数情况下,此结果与使用 toLowerCase和 toUpperCase 方法所获得的结果相同。如果语言规则与常规的 Unicode 大小写映射冲突,则结果将会不同。

    1. const str1 = 'abcdefg'
    2. console.log(str1.toLocaleUpperCase()) // ABCDEFG
    3. console.log(str1.toUpperCase()) // ABCDEFG
    4. const str2 = 'ABCDEFG'
    5. console.log(str2.toLocaleLowerCase())// abcdefg
    6. console.log(str2.toLowerCase()) // abcdefg

    12、includes(), startsWith(), endsWith() ES6新增方法

    includes 用来检测目标字符串对象是否包含某个字符,返回一个布尔值

    startsWith 用来检测当前字符是否是目标字符串的起始部分

    endwith 用来检测是否是目标字符串的结尾部分

    1. const str = 'Excuse me, how do I get to park road?'
    2. console.log(str.includes('how')) // 输出:true
    3. console.log(str.startsWith('Excuse')) // 输出:true
    4. console.log(str.endsWith('?')) // 输出:true

    13、repeat()

    返回一个新的字符串对象,新字符串等于重复了指定次数的原始字符串。

    接收一个参数,就是指定重复的次数。原字符串不变。

    1. const str = 'http'
    2. const str2 = str.repeat(3)
    3. console.log(str) // 输出:'http'
    4. console.log(str2) // 输出:'httphttphttp'

  • 相关阅读:
    Android Studio编译旧的app代码错误及解决方法
    一个工作7年JAVA工程师面试总结:掌握这些技术,offer拿到手软
    Android使用Jetpack WindowManager来开发可折叠设备的探索
    我的第一个springboot starter
    契约锁电子签助力拍卖业务网上签约,保全证据、不可抵赖,成交快
    React+ts学习文档
    SQL和Python,哪个更容易自学?哪个更适合数据工作的编程新手?
    基于Springboot+vue的学生毕业离校系统 elementui
    力扣(LeetCode)算法_C++——寻找重复的子树
    Web开发三层架构
  • 原文地址:https://blog.csdn.net/qq_24917475/article/details/125604509