変数データを含む文字列を置き換えることができる JS 正規表現を探しています。たとえば、これを置き換えたい:
<link rel="stylesheet" href="style.css" />
これとともに:
Stylesheet: style.css
ただし、ファイル名は変数です。JSでこのような動的正規表現を行うにはどうすればよいですか?
変数データを含む文字列を置き換えることができる JS 正規表現を探しています。たとえば、これを置き換えたい:
<link rel="stylesheet" href="style.css" />
これとともに:
Stylesheet: style.css
ただし、ファイル名は変数です。JSでこのような動的正規表現を行うにはどうすればよいですか?
この質問に対する私自身のアプローチは、関数を使用して HTML 文字列から一時的なノードを作成し、作成されたノードを解析して関連情報を取得することです。
function resourceTyping (htmlString) {
var _tmp = document.createElement('div'),
data = {
html: htmlString,
props : []
};
_tmp.innerHTML = htmlString;
var children = _tmp.childNodes,
rel, href, nodeHTML;
for (var i = 0, len = children.length; i < len; i++) {
rel = children[i].rel || '';
href = children[i].getAttribute('href') || '';
nodeHTML = children[i].outerHTML || '';
if (children[i].rel && children[i].href && nodeHTML.length) {
data.props.push(
{
'rel' : rel,
'href' : href,
'nodeHTML' : nodeHTML,
'typeAndValue' : rel[0].toUpperCase() + rel.substring(1) + ': ' + href
}
);
}
}
return data;
}
var html = '<link rel="stylesheet" href="style.css" /><a href="something.html">text</a>',
details = resourceTyping (html);
console.log(details);