Javascript:格式化字符串并避免多次替换

Javascript:格式化字符串并避免多次替换,javascript,regex,Javascript,Regex,我有以下字符串: var str=' <span class="productName">Basa fillets</span><br> Brand: <span class="brandName">COMPLIMENTS</span><br> 400 <abbr title="Gram"

我有以下字符串:

var str='
                <span class="productName">Basa fillets</span><br>
                Brand: 
                <span class="brandName">COMPLIMENTS</span><br>
                400 <abbr title="Gram" lang="en">gr</abbr>
            '
var-str='
基底鱼片
品牌: 恭维话
400克 '
我需要得到“400”(可能是一个单词,甚至是一个句子)。 到目前为止,我得到的是:

d = str.replace(/<br>/g,'').replace(/<.*<\/.*>/g,'').replace(/\n/g,'').replace(/ */g,'').replace(/brand:/i,'');

d=str.replace(/
/g')。replace(/在这个问题上不使用字符串工具/regex,而是可以使用DOM方法(它是HTML)

首先,创建一个“假”div并将HTML添加到其中

var str="\
                <span class=\"productName\">Basa fillets</span><br>\
                Brand: \
                <span class=\"brandName\">COMPLIMENTS</span><br>\
                400 <abbr title=\"Gram\" lang=\"en\">gr</abbr>\
            ";

var fakeDiv = document.createElement('div');
fakeDiv.innerHTML = str;
演示:

或者,您可以从

如何遍历它取决于您:-)

Regex

class="brandName">[^<]+</span><br>[^\w]+([^<]+) <abbr title=

class=“brandName”>[^如果您想使用regex,可以这样做

    var str="\
            <span class=\"productName\">Basa fillets</span><br>\
            Brand: \
            <span class=\"brandName\">COMPLIMENTS</span><br>\
            400 <abbr title=\"Gram\" lang=\"en\">gr</abbr>\
        ";

    var myRegexp = /COMPLIMENTS<\/span><br>\W(.*?) <abbr /g;
    var match = myRegexp.exec(str);
    alert(match[1]);
var str=”\
基底鱼片
\ 品牌:\ 恭维话
\ 400克\ ";
var myRegexp=/compaids
\W(.*)您的字符串无效。您需要用
\“
转义
符号,或者在主字符串中使用
。将其更改为
var str=“Basa fillets
品牌:compaids
400 gr”
或更改“使用“.Edited”,显然是一个输入错误…回答得很好,我不会想到fakeDiv!非常感谢!很高兴我能帮上忙!:-D是的,您实际上不需要元素在DOM中才能使用它们;-)如果您需要支持IE8,您将不需要
getElementsByClassName
,但您可以使用
fakeDiv.query选择器('.brandName');
,因为只有一个元素具有类“brandName”@TomPietrosanti:谢谢。我忘了
GetElementsByCassName
在旧浏览器中不起作用。性感!但我的队友会用它来吓唬他们的:-D谢谢!@xShirase完全可以理解,我真的认为使用html的原生概念和操作来获取项目更适合这个。只是想给你一个quick一些正则表达式的示例。
class="brandName">[^<]+</span><br>[^\w]+([^<]+) <abbr title=
    var str="\
            <span class=\"productName\">Basa fillets</span><br>\
            Brand: \
            <span class=\"brandName\">COMPLIMENTS</span><br>\
            400 <abbr title=\"Gram\" lang=\"en\">gr</abbr>\
        ";

    var myRegexp = /COMPLIMENTS<\/span><br>\W(.*?) <abbr /g;
    var match = myRegexp.exec(str);
    alert(match[1]);