私は文字列を持っています:
var str = `<ul class="errorlist"><li>Enter a valid email address.</li></ul>`;
この文字列から、部分文字列を抽出するにはどうすればよいですか。
'Enter a valid email address.'
別の変数に?
テキストが信頼できない場合、最も安全な(そしておそらく最もエレガントな)オプションはDOMParser
、テキストをドキュメントに変換するために使用し、ドキュメント内でを選択することli
です。
const str = `<ul class="errorlist"><li>Enter a valid email address.</li></ul>`;
const doc = new DOMParser().parseFromString(str, 'text/html');
const a = doc.querySelector('li').textContent;
console.log(a);
innerHTML
新しく作成された要素のを使用したくなるかもしれません。
const str = `<ul class="errorlist"><li>Enter a valid email address.</li></ul>`;
const container = document.createElement('div');
container.innerHTML = str;
const a = container.querySelector('li').textContent;
console.log(a);
ただし、error
インラインハンドラーが実行される可能性があるため、これは安全ではありません。
const str = `<ul class="errorlist"><li><img src="" onerror="alert('evil')">Enter a valid email address.</li></ul>`;
const container = document.createElement('div');
container.innerHTML = str;
const a = container.querySelector('li').textContent;
console.log(a);
DOMParser
同じ脆弱性はありません。入力文字列が信頼できない場合でも安全に使用できます。
const str = `<ul class="errorlist"><li><img src="" onerror="alert('evil')">Enter a valid email address.</li></ul>`;
const doc = new DOMParser().parseFromString(str, 'text/html');
const a = doc.querySelector('li').textContent;
console.log(a);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加