1、什么是字符串?
字符串是多个字符组成的一个“只读”的集合(数组)
注意:
(1)凡是数组对象中,不修改原对象的API,字符串都能用
比如——
.length属性:字符个数,用[i]访问每个字符
slice、indexof
(2)凡是数组对象中,直接修改原对象的API,字符串都不能用
比如——
push、sort、splice
2、内置对象
它是由ES标准中已经定义好的,由浏览器厂商已经实现的对象。
11个——
String、Number、Boolean
Array、Data、Math、RegExp
Error
Function、Object
Global(全局window)
3、包装类型
它是专门封装原始类型数据,提供对原始类型数据的操作方法
(1)3种包装类型——String、Number、Boolean(不能用new)
(2)为什么要使用包装类型?
由于原始类型的数据本来没有任何方法,当程序中使用原始类型调用方法时,程序会自动创建包装类型对象封装该数据。
函数调用完,包装类型自动释放。
4、String类型的API
(1)转义字符:
当a、字符串的内容和程序的特殊符号冲突
b、字符串中包含功能字符时, 都用“ \ ”转义字符来显示
(2)大小写转换(2种)
转换大写——str.toUpperCase()
转换小写——str.toLowerCase()
(3)获取指定位置字符(3种)
a、str[i]
倒数第二个:str[str.length-2]
b、str.charAt(i)
c、str.charCodeAt(i)——返回相应的unicode号
(4)查找关键词位置(2种)
a、var i = str.indexOf("kword"[,starti]);
如果找不到,返回-1
b、var i = str.lastIndexOf("kword"[,starti]);
查找starti位置左侧第一次出现的关键字
starti默认都是0,关键字第一个字符的位置可以等于0
注意:indexOf——从前往后找;lastIndexOf——从后往前找
(5)获取子字符串
a、var subStr = str.slice(starti[,endi+1])
pid.slice(6,-5+1)
b、var subStr = str.substring(starti[,endi+1])
pid.substring(6,pid.length-5+1)
c、var subStr = str.subStr(starti,取几个);
pid.subStr(6,8)
(6)分割字符串
var arr=str.split("分隔符");
arr中以数组形式保存每段子字符串
使用方法——先分割,再遍历
(7)模式匹配
定义:按照规则查找或替换字符串中的子内容
a、查找(2种)
a-1:只能从第一个位置,找第一个匹配的关键字
var i = str.search(/kword/i)
模式1——“/i”表示忽略大小写(ignore)
使用:仅判断有无关键字
search() VS indexOf()
search()专门用于模式匹配(若找位置,并区分大小写)
indexOf()不支持模式匹配
a-2:获得所有关键字的内容或个数
var arr = str.match(/kword/ig)
模式2——“/g”表示全局匹配(global)
注意:arr中保存关键字所有的内容
arr.length表示匹配的关键字的个数
(若匹配查找的关键字没找到,将要返回null)
区分search()与match()方法:
a、search()——“位置”;只能从第一个位置开始,找到第一个出现的关键字
b、match()——“内容”;缺陷是它无法获得关键字下标位置
b、替换replace()
var newStr = str.replace(模式,"替换内容");