从字符串的两部分创建html

时间:2018-09-07 15:07:44

标签: javascript

我有两个字符串。第一个看起来像:

const scriptsStr = '<script src="/build/lib.min.js"></script>';

第二个看起来像:

const htmlStr = '<html><head></head><body>Some markup</body></html>';

在关闭htmlStr中的代码之前,我需要粘贴scriptsStr,然后将其放入iframe。 如何解析htmlStr以找到结束标记?

3 个答案:

答案 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);