JS - 标记的文本值 - 当标记是字符串时

时间:2013-02-12 08:44:46

标签: javascript regex dom

当标记存储为字符串时,如何获取标记的文本值?

var value = "<div>teeext</div>";

标签可以是任何内容,其属性可能包含“&gt;”字符串也是如此,regexp可能很危险 - 文本值本身也可以是另一个标记。

4 个答案:

答案 0 :(得分:0)

我猜你正试图剥离标签..在这种情况下,你可以这样做:

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;

没有测试过,但你明白了;)

答案 1 :(得分:0)

你可以制作一个虚拟元素:

var value = "<div>teeext</div>";

var div = document.createElement('div');
div.innerHTML = value;

var text = div.innerText || div.textContent;

答案 2 :(得分:0)

仅使用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();

答案 3 :(得分:0)

这有助于作为首发吗?

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