基本数据类型-string
概念
通过单引号( '') 、双引号( "")或反引号( ` ) 包裹的数据都叫字符串
作用:用于存储和操作文本
注意 :
- 无论单引号或是双引号必须成对使用
- 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)
- 必要时可以使用转义符 \,输出单引号或双引号
字符串拼接
- 运算符+
console.log('name' + 'song')
- 模版字符串
语法:${变量名}
let name = 'liang' let song = '勇气' console.log(`我是${name},我唱的歌曲名为${song}`)
优点:
任意换行
方便嵌入变量
字符串方法
字符串长度
字符串变量名.length
let str = 'The full name of China is the People\'s Republic of China.'; let le = str.length//le = 57
检索字符串中的字符串
-
indexOf()
使用语法
字符串变量名.indexOf('要查询字符串')
字符串变量名.indexOf('要查询字符串',检索的起始位置)
返回值
返回字符串中指定文本首次出现的索引(位置)
未找到文本,返回 -1let pos1 = str.indexOf('China');//pos1 = 17 let pos2 = str.indexOf('China',18);//pos2 = 51 let pos3 = str.indexOf('flower');//pos3 = -1 -
lastIndexOf()
使用语法
字符串变量名.lastIndexOf('要查询字符串')
字符串变量名.lastIndexOf('要查询字符串',检索的起始位置)
方法向后进行检索(从尾到头),这意味着:假如第二个参数是 50,则从位置 50 开始检索,直到字符串的起点。
返回值
返回指定文本在字符串中最后一次出现的索引
未找到文本,返回 -1let pos1 = str.lastIndexOf('China');//pos1 = 51 let pos2 = str.lastIndexOf('China',50);//pos2 = 17 let pos3 = str.lastIndexOf('flower');//pos3 = -1 -
search()
使用语法
字符串变量名.search('要查询字符串')
返回值
返回字符串中指定文本首次出现的索引(位置)
未找到文本,返回 -1let pos1 = str.search('China');//pos1 = 17 let pos2 = str.search('flower');//pos2 = -1 -
includes()
使用语法
字符串变量名.search('要查询字符串')
字符串变量名.search('要查询字符串',检索的起始位置)
返回值
true:返回字符串包含指定值
false:返回字符串不包含指定值let pos1 = str.includes('China');//pos1 = true let pos2 = str.includes('flower');//pos2 = false
提取部分字符串
-
slice(开始位置,结束位置) 不包含结束位置
// slice(开始位置,结束位置) 不包含结束位置 let str1 = str.slice(0, 5);//str1 = The f let str2 = str.slice(1, 2);//str2 = h 如果某个参数为负,则从字符串的结尾开始计数。
let str1 = str.slice(-6, -1);//str1 = China let str2 = str.slice(-2, -1);//str2 = a 负值位置不适用 Internet Explorer 8 及其更早版本。
-
substring(开始位置,结束位置) 不包含结束位置
let str1 = str.substring(0, 5);//str1 = The f let str2 = str.substring(1, 2);//str2 = h substring()
类似于slice()
。不同之处在于
substring()
无法接受负的索引。 -
slice(开始位置,被提取部分的长度)
//slice(开始位置,被提取部分的长度) let str1 = str.substr(4, 4);//str1 = full let str2 = str.substr(1, 2);//str2 = he
以上3个语法,如果省略第二个参数,则将裁剪到字符串结尾
替换字符串内容
语法:replace('要替换的内容', '替换成该内容');
作用:用另一个值替换在字符串中指定的值
返回:不会改变调用它的字符串。它返回的是新字符串
let str = 'I like apple and apple' let str1 = str.replace('apple','peach')//I like peach and apple let str2 = str.replace(/Apple/i,'peach')//I like peach and apple let str3 = str.replace(/apple/g,'peach')//I like peach and peach let str4 = str.replace(/Apple/ig,'peach')//I like peach and peach
注意
1.默认地,replace() 只替换首个匹配位置的字符串
2.默认地,replace() 对大小写敏感
解决方案
使用正则表达式 /i(大小写不敏感)
语法: replace(/要替换的内容/i, '替换成该内容');
3.替换所有匹配
用正则表达式的 g 标志(用于全局搜索)
语法: replace(/要替换的内容/g, '替换成该内容');注意正则表达式不带引号
转换为大写和小写
-
把字符串全部转换为大写
语法: 字符串变量名.toUpperCase()
-
把字符串全部转换为小写
语法:字符串变量名.toLowerCase()let str1 = str.toLocaleUpperCase()//I LIKE APPLE AND APPLE let str2 = str.toLocaleLowerCase()//i like apple and apple
连接两个或多个字符串
语法:字符串1变量名.concat('字符串2','字符串3')
let str1 = 'My' let str2 = 'name' let str3 = 'is' let str4 = 'happy' str = str1.concat(' ',str2,' ',str3,' ',str4)//My name is happy
删除字符串两端的空白符
语法:str.trim()
let str = ' Hellow~~~ ' let str1 = str.trim()//'Hellow~~~ ' let str2 = str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')//'Hellow~~~ '
Internet Explorer 8 或更低版本不支持 trim() 方法,可搭配正则表达式使用 replace() 方法代替
语法:str.replace(/[1]+|[\s\uFEFF\xA0]+$/g, '')
提取字符串字符
-
str.charAt(position)
返回字符串中指定下标的字符
-
str.charCodeAt(position)
方法返回字符串中指定索引的字符 unicode 编码
let str = 'I like apple and apple' let str1 = str.charAt(0)//'I' let str2 = str.charCodeAt(0)//73
把字符串转换为数组
语法:string.split('字符串中可做分割的字符')
let string = 'a,b,c,d,e,f' console.log(string.split(',')); //(6) ["a", "b", "c", "d", "e", "f"]
扩展-转义字符:\
由于字符串必须由引号包围,当字符串中包含引号时,可能会出错,这是就需要用到转义字符
反斜杠转义字符把特殊字符转换为字符串字符
代码 | 结果 | 描述 |
---|---|---|
\' | ' | 单引号 |
\" | " | 双引号 |
\\ | \ | 反斜杠 |
\s\uFEFF\xA0 ↩︎
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性