字符串写法
* 双引号、单引号、``符号
let str1 = 'hello'
let str2 = "world"
let str3 = `饥人谷培养有灵魂的工程师`
* 长字符串写法
let longStr1 = 'hello' +
'world'
let longStr2= `饥人谷
培养有灵魂的工程师`
let longStr3 = '饥人谷\
培养有灵魂的工程师'
- 加号拼接
- 转义掉最后面的换行符
长字符串
转义字符
* 展示特殊字符
let str1 = 'He says: \'hello!\''
let str2 = "C:\\games\\war3\\"
let str3 = `饥人谷\n培养有灵魂的工程师`
字符串
* 字符串模板
`xxx${变量}yyy`
let name = '饥人谷', age = 5
let str = `欢迎来到${name},我已经${age}岁了`
console.log(str)
字符串方法
* 长度计算、字符串拼接
let str = "hello"
console.log( str.length )
console.log( str[0] )
console.log( str[str.length - 1] )
console.log( str.charAt(0) )
console.log( str.charCodeAt(0) )
let str2 = "world"
let str3 = str1 + " " + str2
cosnole.log( str3 )
let str4 = `${str} ${str2}`
console.log(str4)
let str5 = str.concat(str2)
console.log(str5)
* 字符串查找
let str = "Hello jirengu, hello world"
str.search('el') // 1
str.indexOf('el') // 1
str.lastIndexOf('el') //16
str.indexOf('饥人谷') // -1
str.includes('el') // true
str.startsWith('He') // false
str.endsWith('ld') // true
* 字符串截取
字符串操作不会修改原来的字符串
let str = "hello world"
// 第一个是开始位置,下标从0开始, 第二个是长度,结果是 ell
let sub1 = str.substr(1, 3)
// 第一个是开始位置,第二个是结束位置(不包含),结果是 el
let sub2 = str.substring(1, 3)
// 同上 允许负参
let sub3 = str.slice(1, 3)
* 字符串其他处理
字符串操作不会修改原来的字符串
let str = "hello"
str.split('') //分割字符串成数组,也可以用其他字符分割 ["h", "e", "l", "l", "o"]
str = ' hello '
let str2 = str.trim() // 去掉两边的空白字符,结果是'hello'
let str3 = str.trimLeft() // 去掉左边的空白字符, 结果是'hello '
let str4 = str.toUpperCase() //变成大写 ' HELLO '
let str5 = str.toLowerCase() //变成小写
str = 'abcd'
let str6 = str.padStart(8, '*') //填充字符串 '****abcd'
小练习
• 对于如下字符串,获取URL
let str = '<a href="https://developer.mozilla.org/zhCN/docs/Web/JavaScript">MDN</a>'
let start = str.indexOf('"') + 1 // 包含字符串"" 所以要加1位截取
let end = str.lastIndexOf('"') // 不包含字符串""
let result = str.substring(start, end)
console.log(result)