字符串方法
JavaScript 中的所有内容都是对象。字符串是一种基本数据类型,这意味着一旦创建就无法修改。字符串对象有许多字符串方法,有不同的字符串方法可以帮助我们处理字符串。
length
字符串的 length 方法返回字符串中字符的数量,包括空格。
let js = 'JavaScript'
console.log(js.length) // 10
let firstName = 'Asabeneh'
console.log(firstName.length) // 8
访问字符串中的字符
我们可以通过索引访问字符串中的每个字符。在编程中,计数从 0 开始。字符串的第一个索引是零,最后一个索引是字符串长度减去一。
let string = 'JavaScript'
let firstLetter = string[0]console.log(firstLetter) // Jlet secondLetter = string[1] // a
let thirdLetter = string[2]
let lastLetter = string[9]console.log(lastLetter) // tlet lastIndex = string.length - 1console.log(lastIndex) // 9
console.log(string[lastIndex]) // t
toUpperCase()
此方法将字符串转换为大写字母。
let string = 'JavaScript'console.log(string.toUpperCase()) // JAVASCRIPTlet firstName = 'Asabeneh'console.log(firstName.toUpperCase()) // ASABENEHlet country = 'Finland'console.log(country.toUpperCase()) // FINLAND
toLowerCase()
此方法将字符串转换为小写字母。
let string = 'JavasCript'console.log(string.toLowerCase()) // javascriptlet firstName = 'Asabeneh'console.log(firstName.toLowerCase()) // asabenehlet country = 'Finland'console.log(country.toLowerCase()) // finland
substr()
它接受两个参数,起始索引和要提取的字符数。
let string = 'JavaScript'
console.log(string.substr(4,6)) // Scriptlet country = 'Finland'
console.log(country.substr(3, 4)) // land
substring()
它接受两个参数,起始索引和结束索引,但不包括结束索引处的字符。
let string = 'JavaScript'console.log(string.substring(0,4)) // Java
console.log(string.substring(4,10)) // Script
console.log(string.substring(4)) // Scriptlet country = 'Finland'console.log(country.substring(0, 3)) // Fin
console.log(country.substring(3, 7)) // land
console.log(country.substring(3)) // land
split()
split 方法将字符串在指定的位置拆分。
let string = '30 Days Of JavaScript'console.log(string.split()) // 转换为数组 -> ["30 Days Of JavaScript"]
console.log(string.split(' ')) // 按空格拆分成数组 -> ["30", "Days", "Of", "JavaScript"]let firstName = 'Asabeneh'console.log(firstName.split()) // 转换为数组 - > ["Asabeneh"]
console.log(firstName.split('')) // 按每个字母拆分成数组 -> ["A", "s", "a", "b", "e", "n", "e", "h"]let countries = 'Finland, Sweden, Norway, Denmark, and Iceland'console.log(countries.split(',')) // 按逗号拆分成数组 -> ["Finland", " Sweden", " Norway", " Denmark", " and Iceland"]
console.log(countries.split(', ')) // ["Finland", "Sweden", "Norway", "Denmark", "and Iceland"]
trim()
删除字符串开头或结尾的空格。
let string = ' 30 Days Of JavaScript 'console.log(string) // 30 Days Of JavasCript
console.log(string.trim(' ')) //30 Days Of JavasCriptlet firstName = ' Asabeneh 'console.log(firstName)// Asabeneh
console.log(firstName.trim()) //sabeneh
includes()
它接受一个子字符串参数,并检查子字符串是否存在于字符串中。includes() 返回一个布尔值。如果子字符串存在于字符串中,则返回 true,否则返回 false。
let string = '30 Days Of JavaScript'console.log(string.includes('Days')) // true
console.log(string.includes('days')) // false - 区分大小写!
console.log(string.includes('Script')) // true
console.log(string.includes('script')) // false
console.log(string.includes('java')) // false
console.log(string.includes('Java')) // truelet country = 'Finland'console.log(country.includes('fin')) // false
console.log(country.includes('Fin')) // true
console.log(country.includes('land')) // true
console.log(country.includes('Land')) // false
replace()
接受旧子字符串和新子字符串作为参数。
string.replace(oldsubstring, newsubstring)
let string = '30 Days Of JavaScript'
console.log(string.replace('JavaScript', 'Python')) // 30 Days Of Pythonlet country = 'Finland'
console.log(country.replace('Fin', 'Noman')) // Nomanland
charAt()
接受索引并返回该索引处的字符。
let string = '30 Days Of JavaScript'
console.log(string.charAt(0)) // 3let lastIndex = string.length - 1
console.log(string.charAt(lastIndex)) // t
charCodeAt()
let string = '30 Days Of JavaScript'
console.log(string.charCodeAt(3)) // D 的 ASCII 码是 68let lastIndex = string.length - 1
console.log(string.charCodeAt(lastIndex)) // t 的 ASCII 码是 116
indexOf()
接受子字符串,如果子字符串存在于字符串中,它返回该子字符串的第一个位置,如果不存在则返回 -1。
let string = '30 Days Of JavaScript'console.log(string.indexOf('D')) // 3
console.log(string.indexOf('Days')) // 3
console.log(string.indexOf('days')) // -1
console.log(string.indexOf('a')) // 4
console.log(string.indexOf('JavaScript')) // 11
console.log(string.indexOf('Script')) //15
console.log(string.indexOf('script')) // -1
lastIndexOf()
接受子字符串,如果子字符串存在于字符串中,它返回该子字符串的最后一个位置,如果不存在则返回 -1。
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'console.log(string.lastIndexOf('love')) // 67
console.log(string.lastIndexOf('you')) // 63
console.log(string.lastIndexOf('JavaScript')) // 38
concat()
接受多个子字符串并将它们连接在一起。
string.concat(substring, substring, substring)
let string = '30'
console.log(string.concat("Days", "Of", "JavaScript")) // 30DaysOfJavaScriptlet country = 'Fin'
console.log(country.concat("land")) // Finland
startsWith()
接受一个子字符串作为参数,并检查字符串是否以指定的子字符串开头。它返回一个布尔值(true 或 false)。
let string = 'Love is the best to in this world'console.log(string.startsWith('Love')) // true
console.log(string.startsWith('love')) // false
console.log(string.startsWith('world')) // falselet country = 'Finland'console.log(country.startsWith('Fin')) // true
console.log(country.startsWith('fin')) // false
console.log(country.startsWith('land')) // false
endsWith()
接受一个子字符串作为参数,并检查字符串是否以指定的子字符串结尾。它返回一个布尔值(true 或 false)。
let string = 'Love is the most powerful thing in this world'console.log(string.endsWith('world')) // true
console.log(string.endsWith('love')) // false
console.log(string.endsWith('in this world')) // truelet country = 'Finland'console.log(country.endsWith('land')) // true
console.log(country.endsWith('fin')) // false
console.log(country.endsWith('Fin')) // false
search()
它接受一个子字符串作为参数,并返回该子字符串在字符串中第一次出现的位置。如果未找到子字符串,则返回 -1。
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'
console.log(string.search('love')) // 2
console.log(string.search(/javascript/gi)) // 7
match()
接受一个正则表达式作为参数,并返回与正则表达式匹配的结果数组。它还可以使用标志。
let string = 'I love JavaScript. If you do not love JavaScript what else can you love.'
console.log(string.match('love')) //["love", index: 2, input: "I love JavaScript. If you do not love JavaScript what else can you love.", groups: undefined]
let pattern = /love/gi
console.log(string.match(pattern)) // ["love", "love", "love"]
从文本中提取数字,使用正则表达式
let txt = 'In 2019, I ran 30 Days of Python. Now, in 2020 I am super excited to start this challenge'
let regEx = /\d+/// \d 代表一个数字(0-9)
// + 代表前面的元素(数字)出现一次或多次
// g 代表全局匹配,意思是查找字符串中的所有匹配项console.log(txt.match(regEx)) // // ["2", "0", "1", "9", "3", "0", "2", "0", "2", "0"]
console.log(txt.match(/\d+/g)) // ["2019", "30", "2020"]
repeat()
接受一个数字作为参数,并返回字符串重复指定次数的结果。
let string = 'love'
console.log(string.repeat(10)) // lovelovelovelovelovelovelovelovelovelove
slice()
slice() 方法用于提取字符串的一部分,并返回一个新的字符串,不修改原字符串。它接受两个参数:起始索引(包括)和结束索引(不包括)。
let string = 'JavaScript'
console.log(string.slice(0, 4)) // "Java"
console.log(string.slice(4, 10)) // "Script"
console.log(string.slice(4)) // "Script"