首先来看一下有哪些方法(str代表需要操作的字符串)
| 作用 | 方法名 | 返回值 | 说明 | 补充 |
|---|---|---|---|---|
| 查找 | str.indexOf(A,i) | 下标 | 查找str中首次出现字符串A的索引index代表开始查找的位置 |
下标从0开始 未找到则返回-1 不支持正则表达式 |
| 查找 | str.lastIndexOf(A,i) | 下标 | 查找str中最后一次出现字符串A的索引 |
同上 |
| 查找 | str.search(A) | 下标 | 查找str出现的索引 | 支持正则表达式 |
| 提取 | str.slice(start,end) str.slice(start) |
提取的字符串 | 提取str中[start,end)的值,只传一个参数则从 start取到结尾 |
取开始不取结束 接受负参数 |
| 提取 | str.substring(start,end) | 提取的字符串 | 同上 | 不接收负参数 |
| 提取 | str.substr(start,len) str.substr(start) |
提取的字符串 | 提取str中从start开始长度为length的值,只传一个参数则从start取到结尾 |
第二个参数为要提取的长度 接受负参数 |
| 替换 | str.replace(ori,tar) | 替换后的字符串 | 将str中的ori替换为tar |
ori支持正则 |
| 转大写 | str.toUpperCase() | 转换后的字符串 | 将str转为大写 |
|
| 转小写 | str.toLowerCase() | 转换后的字符串 | 将str转为小写 |
|
| 拼接 | str.concat(…para) | 拼接后的字符串 | str拼接para内容 |
…不确定几个参数 |
| 清除两端空白 | str.trim() | 清除后的字符串 | 清除str两端的空白字符 |
IE8以下不支持 |
| 提取 | str.charAt(index) | 提取的字符 | 提取str中下标为index的字符 |
不支持负参数 |
| 提取 | str.charCodeAt(index) | unicode | 提取str中下标为index字符的unicode |
|
| 转换为数组 | str.split(sign) | 分割后的数组 | 将str以sign分割,转为数组 |
省略参数则数组中第0位为该字符串 参数为””则字符串以单个字符划分 |
| 匹配正则 | str.match(reg) | 匹配结果的数组 | 将str进行reg规则匹配 |
|
| 长度 | str.length | (非方法) | 获取字符串长度 | 属性 |
示例字符串var str = "关关雎鸠,在河之洲,窈窕淑女,君子好逑"
1、indexOf()
- 查找”关”字
var res = str.indexOf("关") //res结果为:0
- 查找”亮”字
var res = str.indexOf("亮") //res结果为:-1
2、lastIndexOf()
- 查找”关”字
var res = str.lastIndexOf("关") //res结果为:1
3、search()
- 查找”关”字
var res = str.search("关") //res结果为:0
- 按正则查找
var res = str.search(/,/) //res结果为:4
注意:search也是从左开始查询首次出现
4、slice()
- 提取”在河之洲”
var res = str.slice(5,9) //res结果为:"在河之洲"
- 提取第5位开始之后的所有
var res = str.slice(5) //res结果为:"在河之洲,窈窕淑女,君子好逑"
- 提取后9位
var res = str.slice(-9) //res结果为:"窈窕淑女,君子好逑"
注意:接受负参数
5、substring()与slice()几乎一样,唯一的区别是不接受负参数,参照上面的例子即可
6、substr()
- 提取”在河之洲”
var res = str.substr(5,4) //res结果为:"在河之洲"
- 提取第5位开始之后的所有
var res = str.substr(5) //res结果为:"在河之洲,窈窕淑女,君子好逑"
- 提取后4位
var res = str.substr(-4,4) //res结果为:"君子好逑"
注意:接受负参数
7、replace()
- 将”在河之洲”替换为”天天向上”
var res = str.replace("在河之洲","天天向上")//res结果为:"关关雎鸠,天天向上,窈窕淑女,君子好逑"
- 将”,”替换为”、”
var res = str.replace("," , "、")//res结果为:"关关雎鸠、天天向上,窈窕淑女,君子好逑"
注意:这里只改变第一次出现的”,”而不会替换所有
要想替换所有需要使用正则表达式,请看下面例子
- 将所有”,”替换为”、”
var res = str.replace(/,/g , "、")//res结果为:"关关雎鸠、天天向上、窈窕淑女、君子好逑"
8、toUpperCase()
- 将”kfc”转大写
var res = "kfc".toUpperCase()//res结果为:"KFC"
9、toLowerCase()
- 将”UfO”转小写
var res = "Ufo".toLowerCase()//res结果为:"ufo"
10、concat()
- 给str后加上”天天向上”
var res = str.concat(",天天向上")//res结果为:"关关雎鸠,在河之洲,窈窕淑女,君子好逑,天天向上"
- 给str后分别加”好好学习”,”天天向上”
var res = str.concat(",好好学习",",天天向上")//res结果为:"关关雎鸠,在河之洲,窈窕淑女,君子好逑,好好学习,天天向上"
11、trim()
- 清除” 两边有空 “两边的空白
var res = " 两边有空 ".trim();//res结果:"两边有空"
注意:IE8及以下版本不支持trim,可以用replace代替,示例如下:var res = " 两边有空 ".replace(/ /g,"") //res结果:"两边有空"
12、charAt()
- 提取下标为6的字符
var res = str.charAt(6) //res结果为:"河"
13、charCodeAt()
- 提取下标为6的字符unicode编码
var res = str.charCodeAt(6) //res结果为:27827
14、split()
- 通过”,”将str分割为数组
var res = str.split(",") //res结果为:["关关雎鸠","在河之洲","窈窕淑女","君子好逑"]
- 将str分割为单个字符数组
var res = str.split("") //res结果为:["关","关","雎","鸠",",","在","河","之","洲",",","窈","窕","淑","女",",","君","子","好","逑"]
- 将str转为数组
var res = str.split() //res结果为:["关关雎鸠,在河之洲,窈窕淑女,君子好逑"]
15、match()
- 匹配”关”字
var res = str.match(/关/g) //res结果为:["关","关"]
16、length
- 获取str长度
var res = str.length //res结果为:19
常用的操作都列举出来了,以上仅代表个人的理解,欢迎各位玩家留言指正
