Wie verwenden von regex für Währung
Ich brauchen, schnappen Sie sich einen Preis aus einem element und fügen Sie es zu einem anderen.
Ich bin mit diesem:
\$\d+(?:\.\d+)?
Die scheint zu funktionieren für $0.50
, $1.00
, $20.00
, $200.00
aber ich traf eine Mauer auf $1,000.00
und $10,000.00
(Unwahrscheinlich $10,000.00
wird nie verwendet werden).
Dem Komma stolpern mich.
** Edit **
Ging ich Weg für eine Stunde wieder zu kommen, um haufenweise Antworten. Bevor ich durch Sie gehen ich dachte, ich würde klären, anstatt die Beantwortung aller Kommentare:
Plattform automatisch generiert, der Gesamtwert der Artikel in einem Einkaufswagen. Es wird gerendert, in einer ein-element - das ändert sich je nachdem, ob ein Benutzer hinzufügen oder entfernen von Elementen.
Wert ist unwahrscheinlich, zu gehen, in 10.000.00, weil die Produkt-Kosten sind nicht so hoch.
Bin ich mit den regex-es dauerte lange genug, um so weit zu kommen, daher die Frage.
Automatisch generierter HTML:
<span vertical="False" quote="False" id="catCartSummary">
<table cellspacing="0" class="cartSummaryTable">
<tbody>
<tr>
<td class="cartSummaryItem">3 item(s), Total: $115.00 <a href="#" class="cartSummaryLink">View Cart</a></td>
</tr>
</tbody>
</table>
</span>
Muss ich nur die $ - Wert in diesem Fall $115.00 - Aber ich brauche es zum arbeiten, für $1.000.00
Was soll passieren, mit so etwas wie
$1.000,00
?können Sie nicht einfach ein Koma in deiner regex ?
Vermutlich nicht, denn sonst denke ich würde er sich nicht Fragen, wie es zu tun.
Du hast zwei gute Antworten, es hängt davon ab, was Sie wollen, zu analysieren, die den Wert oder schnappen Sie sich den Wert.
InformationsquelleAutor Justin | 2012-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersetzen
non-digit
undnon-dot
simbols von''
, dann bewerben Sie sichparseFloat
:UPDATE:, Wenn Ihr 'HTML-Auto-generator' erzeugt gültige Währung strings, dann
regexp ist genug, zum extrahieren aller Währungen:
Dann könnte man auch konvertieren Sie Sie, um zahlen, die für die Durchführung der Mathematik:
Er schrieb er braucht, um zu greifen, der Wert von einem element zum anderen, ich bin mir nicht sicher, kann er Parsen der Wert.
Dieser wandelt ein dollar-Betrag in einen numerischen Wert. Dies ist sicherlich hilfreich zu wissen, wie zu tun ist. Aber es wird nicht helfen, ihn zu finden, der dollar-Beträge in den ersten Platz.
Ist es nicht offensichtlich ,was OP bedeutet 'hinzufügen zu einer anderen' Satz. Ihre Antwort greift das Wert, meine Antwort wandelt Währung Anzahl für die Durchführung der Mathematik (speziell " add " - operation).
Dies funktionierte perfekt für das, was ich Tue, danke.
InformationsquelleAutor Engineer
Dies ist für mich arbeiten:
DEMO
Fand ich eine ausgezeichnete regex, der packt jede gültige Währung und customed es etwas an Ihre Bedürfnisse anzupassen:
DEMO
Die Quelle der regex
$0,,,,,.0
.Behoben, vielen Dank!
OK, aber trotzdem passt
$0,0,0,0.0
obwohl.Und es ist nicht eine gültige Eingabe??
Nun, es ist wirklich schwer zu sagen aus der Frage, was der gültige Eingaben sind, weil die Frage unklar ist. Fragte ich die OP in einem Kommentar zu einer möglichen gültigen/ungültigen Eingaben, aber er antwortete nicht. Wenn dies wird verwendet werden, für die etwas wichtig ist, dann würde ich es vorziehen, um zu sehen, mehrdeutigen oder unbestimmten Eingaben abgelehnt.
InformationsquelleAutor gdoron
Ändern, so etwas wie dieses:
oder diese
InformationsquelleAutor Dmitry
InformationsquelleAutor fcalderan
Strippen aus $ Währungssymbol sowie das Komma kann leicht
mit dieser erreicht mit der replace-RegEx: [^.0-9]
Demo finden Sie hier:
http://rubular.com/r/Gwkx62RtLa
InformationsquelleAutor WildWex
Bekam ich dieses:
Wird, entspricht der Zahl nur, nicht einschließlich des Währungssymbols.
Ich habe gesagt in meiner Antwort, die ich nicht übereinstimmen Währung. Er vielleicht ändern möchte, seine Währung, später auf, und es wird am besten sein, wenn er nicht herausfinden, dass man sich mit RegEx.
Als ich lachte Ihnen regexp-match "ganze Zahl", was nicht heißt, dass es passen nur die Nummer Teil der Währung, zum Beispiel, wird eine Entsprechung in "Der Spieler ist unter der Nummer 47 wurde gekauft für $100.00" string auch 47, die offensichtlich nicht einen Preis.
InformationsquelleAutor Madara Uchiha