Ich möchte diese kleine Tatsache hinzufügen zu übersetzen PHP preg_replace
Regex in JavaScript .replace
Regex:
<?php preg_replace("/([^0-9\,\.\-])/i";"";"-1 220 025.47 $"); ?>
Result : "-1220025.47"
mit PHP, müssen Sie die Anführungszeichen "..."
um die Regex verwenden, einen Punkt Komma zu trennen die Regex mit dem Austausch und den Klammern als Wiederholung Forschung (Hexe bedeutet nicht die gleiche Sache überhaupt.
<script>"-1 220 025.47 $".replace(/[^0-9\,\.\-]/ig,"") </script>
Result : "-1220025.47"
mit JavaScript, kein qu otes um den Regex, ein Komma, um Regex mit dem Ersatz zu trennen und Sie müssen /g
Option verwenden, um mehrere Forschung zusätzlich zu der /i
Option zu sagen (deshalb /ig
).
Ich hoffe, dass dies für jemanden nützlich sein wird! Beachten Sie, dass die "\,"
kann bei "1,000.00 $"
(Englisch?) Art von Nummer unterdrückt werden:
<script>"-1,220,025.47 $".replace(/[^0-9\.\-]/ig,"")</script>
<?php preg_replace("/([^0-9\.\-])/i";"";"-1,220,025.47 $"); ?>
Result : "-1220025.47"
Sie sicher, dass Ihre Aussage ist richtig? Ich könnte mir '/ \ [([^] \ s] +) vorstellen. ([^]] +) \]/G' könnte in JS funktionieren, aber nicht in PHP; PHP hat andere Modifikatoren als JS. 'g' ist kein PHP-Modifier. – chris85
Dies funktioniert auf PHP Sie können es überprüfen, indem Sie auf https://regex101.com ausführen –
regex101 ist kein PHP-Interpreter. Das ist nur ein Regex-Tester. https://eval.in/481587 Siehe http://php.net/manual/en/reference.pcre.pattern.modifiers.php Die Regex ist gültig, wird aber in PHP mit diesem Modifier nicht funktionieren. Die PHP-Funktionen sind bereits global oder es gibt eine Funktion, damit sie global ist (preg_match_all vs. preg_match). – chris85