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