2017-04-03 2 views
-1

Ich hatte preg_replace in PHP arbeiten, aber ich musste es in JavaScript-Code verschieben, und es funktioniert nicht dort. Ich habe hier in Themen gesucht, aber noch nicht funktionierende Lösung für mich gefunden ... Meine PHP sah aus wie:PHP preg_replace in Javascript

preg_replace('/^\d+_/', '', $docTypes); 

Und nun, meine JS aussieht, wichtige Sache, var documentTypes ist object:

Innerhalb var documentTypes sind Werte mit Präfix, die ich entfernen muss. Die Werte sind zum Beispiel:

0_xxxx 
1_xxxx 
2_xxxx 

Vielen Dank für Ihre Ratschläge!

+0

Sie haben ein '/' am Ende verdoppelt, es muss '/^\ d + _/g' sein. –

+2

^^^ und 'documentTypes = documentTypes.replace (/^\ d + _ /, '');' Sie müssen es wieder der Variablen zuweisen, um den Wert zu aktualisieren, ohne das 'g' Flag zu benötigen. – Tushar

+0

@Tushar Code bearbeitet – hstur

Antwort

1

Wenn es ein Array ist:

var docs = ["0_xxx", "1_yyy", "2_zzzz"]; 
docs = docs.map(d => { return d.replace(/^\d+_/g, "")}); 
+0

eigentlich ist es Objekt, wenn ich Ihre Lösung verwende, console.log sagt, dass docs.map keine Funktion ist .. :(aber es sagte mir, dass auch wenn ich es versuchte 'forEach()' und andere Funktionen verwenden ... – hstur

2
<script type="text/javascript"> 
    documentTypes = '0_xxxx'; 
    documentTypes = documentTypes.replace(/^\d+_/, ''); 
    document.write(documentTypes); 
</script>  
+2

Keine Erklärung? Code-Only-Antworten sind für zukünftige Leser nicht hilfreich. Bitte [bearbeiten] Sie die Antwort und fügen Sie eine Erklärung hinzu. – Tushar

+0

Okay ........... –

0

nicht sicher auf dem Eingabestring, Problem sein könnte becouse Sie Zeilenvorschub oder Rückkehr in String tragen. Wenn dies der Fall ist, könnte folgende Lösung in Frage kommen: