Reputation: 385
The text look like this.
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>";
I want to select everything inside p tag after FI: until tag br as same as SE: and EN:
The result will be like this.
var fi = "Sähköpyörä, Tunturi";
var se = "Elektrisk Cykel, Tunturi";
var en = "Electric Bike, Tunturi";
Note: The text are dynamic change.
Thanks !!!
Upvotes: 0
Views: 309
Reputation: 13121
Explode the sting in to array with split:
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>/);
output
array["FI", " Sähköpyörä, Tunturi", "SE", " Elektrisk Cykel, Tunturi", "EN", " Electric Bike, Tunturi"]
Upvotes: 1
Reputation: 18078
If you can arrange for the individual language strings to be enclosed in spans, then you can avoid the need for regular expressions.
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();
Upvotes: 1
Reputation: 97672
How about using some regular expressions
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/
Upvotes: 2