慕仔1561325
2019-01-16 15:40
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
<script type="text/javascript">
function search()
{
var txt = document.getElementById("txt").value;
var sub = document.getElementById("sub").value;
if(txt.indexOf(sub)==-1)
{
document.getElementById("fruit").value="没有出现检索内容";
}
else
{
var i;
var a=0;
var n=-1;
var arr=new Array();
while(a<txt.length)
{
i = txt.indexOf(sub,a);
if(i==-1)
{break;}
++n;
arr[n]=i+1;
a=i+1;
}
document.getElementById("fruit").value=arr;
}
}
</script>
</head>
<body>
<form>
输入待检索字符串
<input type='text' id='txt' /><br/>
输入你要检索的子字符串
<input type='text' id='sub' /><br/>
<input type='button' value='点击输出所有出现检索内容的位置' onclick='search()'/><br/>
<input type='text' id='fruit'/>
</form>
</body>
</html>
function search() { var txt=document.getElementById('txt').value; var sub=document.getElementById('sub').value; var first = -1; //默认第一次出现的值为-1 var arr = [] //存储出现的下标 if (!sub) return if (txt.indexOf(sub) !== -1) { first = txt.indexOf(sub) arr.push(first) for (var i = 0; i < txt.length; i++) { if (txt.indexOf(sub, first + 1)!==-1) { first = txt.indexOf(sub, first + 1) arr.push(first) } } } document.getElementById('fruit').value=arr; }
最好判断一下sub空字符串的情况。
var i;
var a=0;
var n=-1;
var arr=new Array();
while(a<txt.length)
{
i = txt.indexOf(sub,a);
if(i==-1)
{break;}
++n;
arr[n]=i+1;
a=i+1;
}
document.getElementById("fruit").value=arr;
}
这一部分不能理解
感谢感谢!
用的都是前面的学过的东西,做完有点成就感,哈哈
检索的位置我设定为第一个字符为1而不是0
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题