JS字符串操作方法 2021-01-16

JS字符串操作方法

一、charAt():返回在指定位置的字符。

var str="abc"
console.log(str.charAt(0))      //    a

二、charCodeAt():返回在指定的位置的字符的 Unicode 编码。

    var str="abc"
    console.log(str.charCodeAt(1))      //   98

三、concat():连接字符串。

    var a = "abc";  
    var b = "def";  
    var c = a.concat(b);
    console.log(c);               //     abcdef

四、indexOf():检索字符串。indexOf() 方法对大小写敏感!

    var str="Hello world!"
    console.log(str.indexOf("Hello"))     //   0
    console.log(str.indexOf("World"))     //   -1
    console.log(str.indexOf("world"))     //   6

五、match():方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

    var str="1 abc 2 def 3"
    console.log(str.match(/\d+/g))    

六、replace():方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    var str="abc Def!"
    console.log(str.replace(/abc/, "CBA"))     //   CBA Def!

七、search():方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。要执行忽略大小写的检索,请追加标志 i。如果没有找到任何匹配的子串,则返回 -1。

    var str="abc DEF!"
    console.log(str.search(/DEF/))   //   4
    console.log(str.search(/def/))   //   -1
    console.log(str.search(/def/i))   //   -1

八、slice()提取字符串的片断,并在新的字符串中返回被提取的部分。

stringObject.slice(start,end);
start :要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end:紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。
如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。
    var str="abc def ghk"
    console.log(str.slice(4))      //      def ghk
    console.log(str.slice(-2))     //     hk
    console.log(str.slice(4,8))    //    def
    console.log(str.slice(4,-2))   //   def g

九、split():把字符串分割为字符串数组。

    var str="abc def ghi jkl"    
    console.log(str.split(" "))     
    // ["abc", "def", "ghi", "jkl"]
如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
    console.log(str.split("") )     
    // ["a", "b", "c", " ", "d", "e", "f", " ", "g", "h", "i", " ", "j", "k", "l"]
    console.log(str.split(" ",3))   
    // ["abc", "def", "ghi"]

十、toLocaleLowerCase():把字符串转换为小写。

十一、toLocaleUpperCase():把字符串转换为大写。

十二、toLowerCase():把字符串转换为小写。

十三、toUpperCase():把字符串转换为大写。

    var str="ABC def!"
    console.log(str.toLocaleLowerCase())    //abc def!
    console.log(str.toLocaleUpperCase())    //ABC DEF!
    console.log(str.toLowerCase())          //abc def!
    console.log(str.toUpperCase())         //ABC DEF!

十四、substr()

从起始索引号提取字符串中指定数目的字符。
stringObject.substr(start,length)。
start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

十五、substring()

提取字符串中两个指定的索引号之间的字符。
stringObject.substring(start,stop)。
start :必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop :可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
    var str="abc def"
    console.log(str.substr(2))           //c def
    console.log(str.substring(2))        //c def
    console.log(str.substr(2,4))         // c de
    console.log(str.substring(2,4))      // c

十六、codePointAt()

    let s = '𠮷a';
    console.log(s.codePointAt(0)) // 134071
    console.log(s.codePointAt(1)) // 57271
    console.log(s.codePointAt(2)) // 97

十七、includes(), startsWith(), endsWith():传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。

includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
    let s = 'Hello world!';
    console.log(s.startsWith('Hello'))   // true
    console.log(s.endsWith('!'))   // true
    console.log(s.includes('o'))   // true
这三个方法都支持第二个参数,表示开始搜索的位置。
    console.log(s.startsWith('world', 6))   // true
    console.log(s.endsWith('Hello', 5))   // true
    console.log(s.includes('Hello', 6))   //  false

十八、repeat():repeat方法返回一个新字符串,表示将原字符串重复n次。

    console.log('1'.repeat(3))          //111
    console.log('hello'.repeat(2))      //hellohello
    console.log('na'.repeat(0))         //
参数如果是小数,会被取整。
    console.log('na'.repeat(2.9))         // "nana"

十九、padStart(),padEnd()

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

代码中,padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
    console.log('x'.padStart(5, 'ab'))         // 'ababx'
    console.log('x'.padStart(4, 'ab'))         // 'abax' 
    console.log('x'.padEnd(5, 'ab'))         // 'xabab' 
    console.log('x'.padEnd(4, 'ab'))         // 'xaba' 
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
    console.log('aaa'.padStart(2, 'ab'))         // 'aaa'
    console.log('aaa'.padEnd(2, 'ab'))         // 'aaa'
如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。
    console.log('abc'.padStart(10, '0123456789'))         // '0123456abc'
    console.log('abc'.padEnd(10, '0123456789'))         //abc0123456

如果省略第二个参数,默认使用空格补全长度

   console.log('x'.padStart(4))         //   x
   console.log('x'.padEnd(4))         // x   
padStart的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。
    console.log('1'.padStart(10, '0'))         //"0000000001"
    console.log('12'.padStart(10, '0'))         //"0000000012"
    console.log('123456'.padStart(10, '0'))         //"0000123456"
    console.log('1'.padEnd(10, '0'))         //1000000000
    console.log('12'.padEnd(10, '0'))         //"1200000000"
    console.log('123456'.padEnd(10, '0'))         //"1234560000"
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值