• js String


    String

    //主要记录String常用对象

    //参考
    https://wangdoc.com/javascript/stdlib/string.html#stringfromcharcode
    https://es6.ruanyifeng.com/
    https://developer.mozilla.org/zh-CN/
    
    1.1 String.prototype.length
    "abc".length //3
    
    1.2 String.prototype.charAt()
    //返回指定位置的字符,参数是从0开始编号的位置。
    const str = "string"
    console.log(str.charAt(0)) //s
    console.log(str.charAt(1)) //t
    
    1.3 String.prototype.charCodeAt()
    //返回字符串指定位置的 Unicode 码点(十进制表示),相当于String.fromCharCode()的逆操作
    const str = "Hello World"
    console.log(str.charCodeAt(0)) //72
    console.log(str.charCodeAt(1))  //101
    
    1.4 String.prototype.concat()
    //将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回
    const str = "Hello"
    const msg = str.concat(" Java", "Script") //Hello JavaScript
    'a'.concat('b', 'c') // "abc"
    
    1.5 String.prototype.slice()
    //提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串
    //第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)
    const str = "Hello JavaScript"
    console.log(str.slice(0,5)) //Hello
    
    //如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度。
    console.log(str.slice(0,-15)) //H
    
    //如果第一个参数大于第二个参数(正数情况下),slice()方法返回一个空字符串。
    console.log(str.slice(5, 3)) // 空
    
    // 如果省略第二个参数,则表示子字符串一直到原字符串结束
    console.log(str.slice(5)) // JavaScript
    
    1.6 String.prototype.substring()
    //用于从原字符串取出子字符串并返回,不改变原字符串,跟slice方法很相像。它的第一个参数表示子字符串的开始位置,第二个位置表示结束位置(返回结果不含该位置
    
    const str = "JavaScript"
    console.log(str.substring(0))  //JavaScript
    console.log(str.substring(0,4))  //Java
    
    //如果第一个参数大于第二个参数,substring方法会自动更换两个参数的位置。
    console.log(str.substring(10,4)) //Script
    //如果参数是负数,substring方法会自动将负数转为0。
    console.log(str.substring(4,-4)) //Java
    
    1.7 String.prototype.substr()
     未来将可能会被移除掉。如果可以的话,使用 substring() 替代它.
    //用于从原字符串取出子字符串并返回,不改变原字符串 
    //第一个参数是子字符串的开始位置(从0开始计算),第二个参数是子字符串的长度
    
    
    1.8 String.prototype.indexOf() String.prototype.lastIndexOf()
    //用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配。
    const str = "Hello JavaScript World"
    console.log(str.indexOf("l")) //2
    //indexOf方法还可以接受第二个参数,表示从该位置开始向后匹配。
    console.log(str.indexOf("l", 10)) //20
    
    //lastIndexOf方法的用法跟indexOf方法一致,主要的区别是lastIndexOf从尾部开始匹配,indexOf则是从头部开始匹配
    
    //例如查询当前字符串所以'l'出现的位置
    const arr = []
     let i = 0;
          while(i < str.length) {
            if(str.indexOf("l", i) !== -1) {
              arr.push(str.indexOf("l", i))
              i = str.indexOf("l", i) + 1
            }else {
              i++
            }
          }
      console.log(arr)//[2, 3, 20]
    
    1.9 String.prototype.trim()
    //去除字符串两端的空格,返回一个新字符串,不改变原字符串。
    '  hello world  '.trim() //hello world
    
    1.10 String.prototype.toLowerCase()
    //将调用该方法的字符串值转为小写形式,并返回 改变原字符串
    const str = "HELLO JAVASCRIPT WORLD"
    console.log(str.toLowerCase()) //hello javascript world
    
    1.11 String.prototype.toUpperCase()
    //将调用该方法的字符串值转为大写形式,并返回 改变原字符串
    const str = "Hello JavaScript World"
    console.log(str.toUpperCase()) //HELLO JAVASCRIPT WORLD
    
    1.12 String.prototype.match()
    //确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null
    const str = 'cat bat sat fat'
    console.log(str.match("bat"))// ['bat', index: 4, input: 'cat bat sat fat', groups: undefined]
    //返回的数组还有index属性和input属性,分别表示匹配字符串开始的位置和原始字符串
    //其实可以传入正则 正则不熟悉 String.prototype.matchAll()
    
    1.13 String.prototype.search()
    //search方法的用法基本等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
    const str = 'cat bat sat fat'
    console.log(str.search("sat")) //8
    
    1.14 String.prototype.replace()
    //替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式
    const str = 'cat bat sat fat'
    console.log(str.replace(/a/g, "k"))//ckt bkt skt fkt
    
    1.15 String.prototype.split()
    //方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组
    'a|b|c'.split('|') // ["a", "b", "c"]
    'cat bat sat fat'.split(" ") // ['cat', 'bat', 'sat', 'fat']
    "Hello".split("") //['H', 'e', 'l', 'l', 'o']
    
    1.16 String.prototype.includes()
    //用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false
    // 区分大小写
    const str = "aaaa bbb cba bac nba"
    console.log(str.includes("nba"))//true
    
    1.17 String.prototype.startsWith()/endsWith()
    //判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。
    //第二个参数,表示开始搜索的位置
    //endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束
    //endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
    const str = "aaaa bbb cba bac nba"
    console.log(str.startsWith("bbb")) //false
    console.log(str.startsWith("bbb",5))// true
    console.log(str.endsWith("nba")) //true
    console.log(str.endsWith("bac", 16)) //true
    
    1.18 String.prototype.repeat()
    //返回一个新字符串,表示将原字符串重复n次
    const str = "Hello"
    console.log(str.repeat(2)) //HelloHello
    
    //参数如果是小数,会被取整。
    console.log(str.repeat(2.4)) //HelloHello
    
    //如果repeat的参数是负数或者Infinity,会报错。
    
    //数是 0 到-1 之间的小数,则等同于 0;
    //参数NaN等同于 0。
    //repeat的参数是字符串,则会先转换成数字,不能转字符串也是0
    'na'.repeat(-0.9) // ""
    'na'.repeat('na') // ""
    'na'.repeat(NaN) // ""
    
    1.19 String.prototype.padStart() String.prototype.padEnd()
    //字符串补全长度的功能
    //padStart()用于头部补全,padEnd()用于尾部补全
    //padStart()和padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串
    
    const str = "World"
    str.padStart(11, "Hello ")//Hello World
    'x'.padStart(5, 'ab') // 'ababx'
    'x'.padStart(4, 'ab') // 'abax'
    'x'.padEnd(5, 'ab') // 'xabab'
    'x'.padEnd(4, 'ab') // 'xaba'
    
    //如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串
    'abc'.padStart(10, '0123456789') //'0123456abc'
    
    //如果省略第二个参数,默认使用空格补全长度
    str.padStart(7) //"  World"
    
    //如果第1个参数,小于默认的字符长度,返回默认字符
    str.padStart(3) //World
    
    1.20 String.prototype.trimStart() String.prototype.trimEnd()
    //它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。
    const s = '  abc  ';
    
    s.trim() // "abc"
    s.trimStart() // "abc  "
    s.trimEnd() // "  abc"
    
    1.21 String.prototype.replaceAll()
    //可以一次性替换所有匹配
    'aabbcc'.replaceAll('b', '_')// 'aa__cc'
    
    
    1.22 String.prototype.at()
    //接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置)。
    //实验性方法 
    //与charAt() 唯一不同charAt不支持负索引
    const str = 'hello';
    str.at(1) // "e"
    str.at(-1) // "o"
    
    1.23 String.prototype.toString()
    //方法返回指定对象的字符串形式
    const str = "World"
    console.log(str.toString())// World
    
    1.24 String.prototype.valueOf()
    //方法返回  String  对象的原始值
    const str = "World"
    console.log(str.valueOf())// World
    
  • 相关阅读:
    [转]Delphi DLL的创建、静态 以及动态调用
    Delphi txt文件的操作(读取、写入)
    为什么要使用动态链接库(DLL)
    TStringGrid 实现下拉框
    Ryzen 4000'Vermeer' CPU和Radeon RX'Big Navi'图形卡
    AMD Ryzen 5000‘Cezanne’APU
    AMD–7nm “Rome”芯片SOC体系结构,支持64核
    ARM Cortex-M嵌入式C基础编程(下)
    ARM Cortex-M嵌入式C基础编程(上)
    基于ARM Cortex-M的SoC存储体系结构和实战
  • 原文地址:https://www.cnblogs.com/doumian/p/16181523.html
Copyright © 2020-2023  润新知