<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>正则的查找</title>
</head>
<body>
</body>
<script>
var str="明明喜欢我,却不告诉我;别理我,我想静静;静静是谁?你TM先告诉我明明是谁";
var reg=/明明|静静/g;
var arr=null;
while ((arr = reg.exec(str))!=null){
console.log("在位置"+arr.index+"找到关键字"+arr[0]+"下次从"+reg.lastIndex+"开始查找");
}
</script>
</html>
输入的结果:
在位置0找到关键字:明明下次从2开始找
在位置18找到关键字:静静下次从20开始找
在位置21找到关键字:静静下次从23开始找
在位置33找到关键字:明明下次从35开始找
查找API:
var arr=reg.exec(str):在str中查找所有符合reg规定的关键字
要加g
其中:arr[0]:保存了当前关键字的内容
arr.index:保存了当前关键字的位置
reg.lastIndex:保存下次开始查找的位置
何时使用:只要既查找内容,又查找位置,只能用reg.exec
总结:查找关键字:
1. var i=str.search(reg)-->判断有没有
缺点:不能指定开始位置
2. var arr=str.match(reg)-->获得所有关键字内容,个数
缺点:不能返回位置
3. var i=str.indexOf("kword"[,starti])
-->从指定位置开始,查找下一个关键字的位置
缺点:不支持正则
4. var arr=reg.exec(str)-->即获得内容,又获得位置
缺点:复杂