2009-01-02 11 views
58

J'utilise simple regex pour remplacer les étiquettes de rupture avec les nouvelles lignes:équivalent JavaScript de preg_replace PHP

br_regex = /<br>/; 
input_content = input_content.replace(br_regex, "\n"); 

Ce ne remplace que la première instance d'une balise de saut, mais je dois remplacer tous. preg_match_all() ferait l'affaire en PHP, mais j'aimerais connaître l'équivalent JavaScript.

+3

Comme vous n'avez pas besoin de correspondre à un modèle de regex, vous devriez utiliser str_replace() en PHP au lieu de preg_match_all() pour votre exemple: $ str = str_replace ('
', "\ n", $ str); – scronide

+0

Vous devriez vraiment changer le titre en disant preg_replace et pas preg_match_all, ceci est déroutant et n'aide pas en cherchant – iBobo

Répondre

105

Utilisez le drapeau global, g:

foo.replace(/<br>/g,"\n") 
17

idiome JS pour remplacer global de non-Regexp:

input_content.split('<br>').join('\n') 
+0

Je me sens sale en utilisant ceci mais cela fonctionne et est le seul moyen si l'expression regex est décodée en base 64. TY :) – JRsz

+0

Bonjour @bobince, Asker voulait une solution basée sur RegEx, pourquoi répondez-vous à cela? – Tamim

+0

@Tamim La solution regex avait déjà été donnée; C'est une alternative car pour le remplacement de chaîne simple, regex n'est pas nécessaire. – bobince