0

文本看起来像这样。

var fi,se,en;
var description = 
"<p>
FI: Sähköpyörä, Tunturi<br />
SE: Elektrisk Cykel, Tunturi<br />
EN: Electric Bike, Tunturi<br />
<\/p>";

我想在 FI: 之后选择 p 标签内的所有内容:直到标签 br 与 SE: 和 EN: 相同

结果会是这样。

var fi = "Sähköpyörä, Tunturi";

var se = "Elektrisk Cykel, Tunturi";

var en = "Electric Bike, Tunturi";

注:文字为动态变化。

谢谢 !!!

4

3 回答 3

2

使用一些正则表达式怎么样

var fi,se,en;
var description = 
"<p>\
FI: Sähköpyörä, Tunturi<br />\
SE: Elektrisk Cykel, Tunturi<br />\
EN: Electric Bike, Tunturi<br />\
</p>";
var match = description.match(/FI:\s*(.+)<br \/>\s*SE:\s*(.+)<br \/>\s*EN:\s*(.+)<br \/>/);
fi = match[1];
se = match[2];
en = match[3];

http://jsfiddle.net/mowglisanu/VGSaW/

于 2012-12-07T04:06:59.717 回答
1

使用 split 将 sting 分解为数组:

    var fi,se,en;
    var description = 
    "<p>\
    FI: Sähköpyörä, Tunturi<br />\
    SE: Elektrisk Cykel, Tunturi<br />\
    EN: Electric Bike, Tunturi<br />\
    </p>";

    bits = $(description).html().split(/:|<br>/); 

输出

    array["FI", " Sähköpyörä, Tunturi", "SE", " Elektrisk Cykel, Tunturi", "EN", " Electric Bike, Tunturi"]
于 2012-12-07T04:46:33.037 回答
1

如果您可以安排将各个语言字符串包含在跨度中,那么您可以避免使用正则表达式。

var description = '<p>FI: <span class="fi">Sähköpyörä, Tunturi</span><br/>SE: <span class="se">Elektrisk Cykel, Tunturi<br/>EN: <span class="en">Electric Bike, Tunturi<br/></p>';
var $desc = $(description);
var fi = $desc.find(".fi").text();
var se = $desc.find(".se").text();
var en = $desc.find(".en").text();
于 2012-12-07T04:23:01.370 回答