var str="abc"
console.log(str.charAt(0)) // a
var str="abc"
console.log(str.charCodeAt(1)) // 98
var a = "abc";
var b = "def";
var c = a.concat(b);
console.log(c); // abcdef
var str="Hello world!"
console.log(str.indexOf("Hello")) // 0
console.log(str.indexOf("World")) // -1
console.log(str.indexOf("world")) // 6
var str="1 abc 2 def 3"
console.log(str.match(/\d+/g))
var str="abc Def!"
console.log(str.replace(/abc/, "CBA")) // CBA Def!
var str="abc DEF!"
console.log(str.search(/DEF/)) // 4
console.log(str.search(/def/)) // -1
console.log(str.search(/def/i)) // -1
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
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"]
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!
从起始索引号提取字符串中指定数目的字符。
stringObject.substr(start,length)。
start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
提取字符串中两个指定的索引号之间的字符。
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
let s = 'a';
console.log(s.codePointAt(0)) // 134071
console.log(s.codePointAt(1)) // 57271
console.log(s.codePointAt(2)) // 97
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
console.log('1'.repeat(3)) //111
console.log('hello'.repeat(2)) //hellohello
console.log('na'.repeat(0)) //
参数如果是小数,会被取整。
console.log('na'.repeat(2.9)) // "nana"
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"