有必要实现 getSrc(),它接收一段有效的(即没有错误编写的)html 代码作为输入,该代码可以包含多个图像。获取图像的src属性的值。该属性可以用单引号或双引号引起来,例如,src="test.png", src='test.png'。
src 返回字符串
我得到以下信息:
function getSrc(html) {
let str = html.toLowerCase();
let pos = 0;
let res = ''
let k = str.indexOf('<img ');
let src = str.indexOf("src=", k);
while (str.indexOf('<img ', pos + 1) != -1) {
let open =
str.indexOf('"', src) != -1 ?
str.indexOf('"', src) :
str.indexOf("'", src);
let close =
str.indexOf('"', open + 1) != -1 ?
str.indexOf('"', open + 1) :
str.indexOf("'", open + 1);
pos += close;
res += str.slice(open + 1, close) + ' ';
}
return res
}
getSrc('<table><tr><td><img width="200" src="google.jpg"></td></tr><tr><td><img width="200" src='
chrome.jpg '></td></tr><tr><td><img width="200" src="safari.jpg"></td></tr><tr><td><img width="200" src="edge.jpg"></td></tr></table>')
它应该输出:google.jpg chrome.jpg safari.jpg edge.jpg。我得到:google.jpg google.jpg google.jpg google.jpg
我明白错误在于我将相同的 src 传递给 while,但如何修复它......有趣的是我在 React 中编写组件,但我被这个困住了)