字符串概述
- 定义: 多个字符组成的只读字符数组
- 只要数组中不直接修改原数组的API, 字符串都能用
- str[i] 获得字符串中下标为i的字符
- str.length 获得字符个数
- str.slice(starti[,endi+1]) 获得子字符串
字符串API
- 注意: 所有API无法修改原字符串, 都是返回新字符串
- 大小写转换API
- var newStr = str.toUpperCase; //所有字母转大写
- var newStr = str.toLowerCase; //所有字母转小写
- 何时使用: 凡是不区分大小写字母的, 比如邮箱、用户名等
- 获取指定位置字符API
- var char = str.charAt(i) //同str[i]
- var unicode = str.charCodeAt(i) //获得i位置字符的unicode码
- 检索关键字API
- var i = str.indexOf(“关键字”[,fromi]); //从左向右获得下一个匹配到的关键字的位置, 默认从最左开始检索, 检索包含fromi位置字符
- var i = str.lastIndexOf(“关键字”[,fromi]); //从右向左获得下一个匹配到的关键字的位置, 默认从最右开始检索, 检索包含fromi位置字符
- 获取子字符串API
- var subStr = str.slice(starti[,endi+1]); //支持负数参数
- var subStr = str.substring(starti[,endi+1]); //不支持负数参数, 可用length-n代替
- var subStr = str.subStr(starti,n); //从开始位置截取n个字符, 含头
支持正则的字符串API
- 分割字符串API
- var strs = str.split(“分隔符/exp”);
- 何时使用:
- 希望将字符串按照规律分割为数组时
- 分段处理字符串时, 需要先切割, 再遍历
- 查找
- 判断有无: var i = str.search(exp);
- 只找第一个匹配到的,找到则返回关键字位置, 如果没找到, 返回-1
- 无法修改开始查找的位置
- 无法继续查找之后的所有关键词
- 获得所有关键字的内容和个数: reg结尾+g
- var kwords = str.match(exp)
- 如果exp结尾+g, 表示查找全部匹配关键词, 否则, 默认仅查找第一个匹配到的关键词
- 如果没找到, 返回null
- 正则默认区分大小写, 若要忽略大小写, exp结尾+i
- 返回值为匹配到的关键字组成的数组
- 判断有无: var i = str.search(exp);
- 替换: str = str.replace(exp,”替换值”);
- 替换一般都要加g, 即全局匹配
- 返回值为替换后的新串
格式化字符串操作步骤
- 利用正则表达式将原字符分组匹配
- 将正则表达式传入repalce中, 使用替换值格式化字符串