我有两个字符串。第一个看起来像:
const scriptsStr = '<script src="/build/lib.min.js"></script>';
第二个看起来像:
const htmlStr = '<html><head></head><body>Some markup</body></html>';
在关闭htmlStr中的代码之前,我需要粘贴scriptsStr,然后将其放入iframe。 如何解析htmlStr以找到结束标记?
答案 0 :(得分:1)
type Car = {
model: string,
maxSpeed: number
}
function processCar({ model, maxSpeed }: Car) {
// model should be anotated as string
// and maxSpeed as number here but that is not the case
}
答案 1 :(得分:0)
htmlStr.indexOf("</html>")
将为您提供结束标签的索引。
然后您可以使用splice以便在此索引处插入scriptStr
。
由于字符串不存在拼接,因此可以实现它:
String.prototype.splice = function(start, delCount, newSubStr) {
return this.slice(0, start) + newSubStr + this.slice(start + Math.abs(delCount));
};
或者,如尘土飞扬垃圾桶所建议的那样:
htmlStr.replace('<head>', '<head>' + scriptsStr);
在打开标签后插入。
或
htmlStr.replace('</head>', 'scriptsStr + </head>');
要在结束标记之前插入。
答案 2 :(得分:0)
这将找到封闭体标签的索引,并将scriptsStr
字符串插入该位置
const scriptsStr = '<script src="/build/lib.min.js"></script>';
const htmlStr = '<html><head></head><body>Some markup</body></html>';
const indexToInsert = htmlStr.indexOf('</body>');
const newString = htmlStr.substr(0, indexToInsert) + scriptsStr + htmlStr.substr(indexToInsert);