タグが文字列として保存されている場合、タグのテキスト値を取得するにはどうすればよいですか?
var value = "<div>teeext</div>";
タグは何でもかまいません。その属性には ">" 文字列も含まれる可能性があり、正規表現は危険な場合があります。また、テキスト値自体が別のタグになる可能性もあります。
タグが文字列として保存されている場合、タグのテキスト値を取得するにはどうすればよいですか?
var value = "<div>teeext</div>";
タグは何でもかまいません。その属性には ">" 文字列も含まれる可能性があり、正規表現は危険な場合があります。また、テキスト値自体が別のタグになる可能性もあります。
これはスターターとして役立ちますか?
function getText(tagString) {
var firstOpenTag = tagString.indexOf(">"),
lastCloseTag = tagString.lastIndexOf("</"),
substrLength;
if (firstOpenTag == -1 || lastCloseTag == -1) {
return tagString;
}
substrLength = (tagString.length - firstOpenTag) - (tagString.length - lastCloseTag) - 1;
return tagString.substr(firstOpenTag + 1, substrLength);
}
var value = "<div>teeext</div>";
console.log(getText(value));
var moreTags = "<div><ul><li>Text</li></ul></div>",
returnValue = moreTags,
prevReturnValue = "";
while (returnValue !== prevReturnValue) {
prevReturnValue = returnValue;
returnValue = getText(returnValue);
}
console.log(returnValue);
タグを削除しようとしていると思います..その場合、次のようにできます。
originalString = "<div>teeext</div>";
var value = originalString.replace(/(<([^>]+)>)/ig,"");
テストしてみてください。処理する必要がある例外がある場合は、ここにコメントしてください。さらにお手伝いします.
複数のタグの編集:
originalString = "<div>teeext</div>";
outputString = originalString;
while (outputString.indexOf(/(<([^>]+)>)/ig) !== -1){
outputString = outputString.replace(/(<([^>]+)>)/ig,"");
}
value = outputString;
テストしていませんが、要点はわかります;)
ダミー要素を作成できます:
var value = "<div>teeext</div>";
var div = document.createElement('div');
div.innerHTML = value;
var text = div.innerText || div.textContent;
JavaScriptのみを使用:
var div = document.createElement('div');
var value = "<div>teeext</div>";
div.innerHTML = value;
var element = div.firstChild
console.log(element.innerHTML); //this the stuff in the tag
jquery の使用:
$(value).html();