2016-08-10 4 views
1

Ich habe einen Text wie diesesJS .replace mit regex

Right (99.99руб.) OR links mit Raum (руб. 99,99) OR Recht mit Platz (99,99 руб.) OR Left (руб. 99.99)

Ich möchte Währungssymbol mit meinem neuen Symbol finden und ändern.

Hier ist mein Code zum Beispiel

var str = "Right (99.99руб.)", 
    symbol = '&&'; 

console.log(str.replace(/\(\d+\.?\d+\s?(.+)\)|\(([^0-9^\s]+)\s?\d+\.\d+\)/g, symbol)) 

Aber es ersetzt alle den Text, den ich mit regex finden haben ("(99.99руб.)") Anstelle von Text in erfassten Gruppe ("руб.") .

Wie kann ich nur übereinstimmenden Text ersetzen?

P. S Vielen Dank im Voraus P.S.S Sorry für mein Englisch

+0

Sie haben die Rückreferenz nicht verwendet. Was ist die erwartete Ausgabe? Versuchen Sie 'symbol =" && \ 1 "' –

+1

Mögliches Duplikat von [JS Regex, wie man nur die erfassten Gruppen ersetzt?] (Http://stackoverflow.com/questions/3954927/js-regex-how-to-replace-) the-captured-groups-only) – vesse

+0

@WiktorStribizew erwartete Ausgabe ist "Richtig (99.99 &&)" – Aram810

Antwort

0

Sie verwenden:

руб\.\ ?(\d[\d.]+)|(\d[\d.]*)\ ?руб 

und ersetzen Sie es a demo on regex101.com mit $1$2&& finden.


In JavaScript:

var string = 'Right (99.99руб.) OR Left with space (руб. 99.99) OR Right with space (99.99 руб.) OR Left (руб.99.99)'; 
var re = /руб\.\ ?(\d[\d.]+)|(\d[\d.]*)\ ?руб/g; 
string = string.replace(re, '$1$2&&'); 
alert(string); 

Sehen Sie eine JS Geige auf jsfiddle.net.

+0

es muss mit jeder Währung arbeiten, nicht nur руб. Zeichenfolge kann mit Leerzeichen (৳ 99,99) – Aram810

+0

verlassen werden und Sie müssen nicht mit arbeiten "Right (99.99 руб.) ODER Links mit Leerzeichen (руб. 99.99) ODER Rechts mit Leerzeichen (99.99 руб.) ODER Links (руб.99.99) „ Es wäre besser, zu schreiben ich habe einen Text wie eine dieses ‚Right (99.99руб.)‘oder‚links mit Raum (руб. 99,99)‘oder“ rechts mit Leerzeichen (99.99 руб.) "Oder" Left (руб.99.99) " – Aram810

+0

Siehe https://regex101.com/r/kR2sX3/1, Sie können die alternierenden Symbole den Wechselgruppen hinzufügen. –