正则表达式返回作为文本字符串接收的HTML标记的内容

时间:2010-05-10 17:37:30

标签: javascript regex

我收到的代码中包含一些包含一些html标记的字符串。它不是HTML页面的一部分,因此我无法使用DOM获取html标记内容(即document.getElementById('tag id').firstChild.data);

因此,例如在文本字符串中会出现如下标记:

 <span id='myQty'>12</span>

我的问题是如何在此示例中使用正则表达式来访问“12”数字?该数量可以是任意数量的数字(即它不总是一个两位数)。

我尝试了一些正则表达式,但总是最终获得与内容一起返回的完整span标记。我只想要上面示例中的“12”,而不是周围的<span>标记。在我收到的文字字符串中,<span>代码的ID始终为“myQty”。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

var testfunction = function (input) {
    var regvar = new RegExp(/^(<span id\='myQty'>\w+<\/span>)$/);
    if (regvar.test(input) === true) {
        input = input.slice(6, input.length - 7);
    }
    return input;
}

答案 1 :(得分:0)

由于您只是尝试从特定标记结构中获取特定值,而不是尝试使用正则表达式来剥离HTML标记:

var myQtyMatch = str.match(/<span id='myQty'>(\d+)<\/span>/);
if (myQtyMatch) {
    var myQty = myQtyMatch[1];
    // myQty now holds the value between the <span> tags.
}