87,910
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function toNewStr(str, index) {
var st = '',strarr;
strarr = str.split("<br/>");
for(var i=0; i<strarr.length; i++) {
if(index<strarr[i].length && index==strarr[i].length)
return st += strarr[i].substr(0, index);
else
return str += toNewStr(strarr[i+1], index-strarr[i].length) + '<br />';
}
}
var str='abc一二三<br/>一二三';
var s = toNewStr('abc一二三<br/>一二三',8);
alert(s);
</script>
</head>
<body>
</body>
</html>
哪儿有错啊?function toNewStr(str, index) {
var strarr = str.split("<br/>");
if(index <= strarr[0].length)
return st += strarr[0].substr(0, index);
else {
if(strarr.length==1){
return strarr[0];
}
//return (st += toNewStr(strarr[i+1], index-strarr[i].length) + '<br />');
return st += strarr[0] + '<br />' + toNewStr(str.substr(strarr[0].length+5), index-strarr[0].length-1);
//递归str剩下的部分,<br/>长度是5,索引减去第一段的长度 再减去<br/>的位置1
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var st = ''
function toNewStr(str, index) {
var strarr;
strarr = str.split("<br/>");
for(var i=0; i<strarr.length; i++) {
if(index<strarr[i].length || index==strarr[i].length)
return st += strarr[i].substr(0, index);
else
//return (st += toNewStr(strarr[i+1], index-strarr[i].length) + '<br />');
return st += strarr[i] + '<br />' + toNewStr(strarr[i+1], index-strarr[i].length);
}
}
var str='abc一二三<br/>一二三';
var s = toNewStr('abc一二三<br/>一二三',8);
alert(s);
</script>
</head>
<body>
</body>
</html>
可以了,谢谢你,是那的问题if(index<strarr[i].length && index==strarr[i].length)
这块有问题 这个肯定是false的 你再理一下思路