Dies würde die Zahl aus dem inneren HTML, dass ‚‘ zu extrahieren arbeiten:
/[0-9.]+/
der anderen Teil des Problems ist, Holen Sie sich das HTML mit dem Preis darin. Hier ist ein vollständigeres Beispiel:
<html>
<head>
<script>
function toggle(e,id) {
val = parseFloat(e.innerHTML.match(/[0-9.]+/));
// Another method:
// val = parseFloat(e.innerHTML.match(/\$([0-9.]+)/)[1]);
alert(val);
}
</script>
</head>
<body>
<table border=1><tr>
<td headers="fee" style="cursor:pointer;" onclick="toggle(this,'detailinfo088180');">
$675.04
</td>
blabla<br><em>$650</em>">blabla/a>
</td>
</tr>
</table>
</body>
</html>
Beachten Sie Folgendes:
- Die
toggle()
Funktion nimmt einen zusätzlichen Parameter, die das Element ist, das tatsächlich geklickt wurde. (Angenommen, Sie möchten, dass der Preis aus dem angeklickten Element extrahiert wird)
- Ich habe einen weiteren regulären Ausdruck zur Verfügung gestellt, der restriktiver ist (muss ein "$" an der Vorderseite der Nummer haben), falls dies erforderlich ist. Der Ausdruck verwendet die Erfassung ("
(..)
"), um eine Zeichenfolge zu finden und einen Teil der Zeichenfolge anstelle der gesamten Zeichenfolge zu extrahieren.
Wenn Sie mehr darüber erfahren möchten, wie reguläre Ausdrücke funktionieren, versuchen Sie here. Oder Google.
die Tatsache also, dass es innerhalb von HTML ist nicht besonders relevant ist; Du suchst nur nach einer Nummer, die einem Dollarzeichen folgt, oder? – Wiseguy
Dare ich dupe es .... ja, ja ich tue. [RegEx passt offene Tags mit Ausnahme von XHTML-eigenen Tags an] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – Amber
Gelbe, triviale Datenextraktion von HTML/XML ist möglich und machbar mit Regex. Bei dieser Frage geht es überhaupt nicht darum, die Tag-Struktur abzustimmen. Um es noch einmal zu verdeutlichen: Was sie suchen, ist sehr regelmäßig, so dass Ihre verknüpfte/betrogene Frage überhaupt nicht gilt. – Joey