ActionScript 3 .remplacer les() ne remplace première instance
En Flash ActionScript 3, je suis en train de faire quelque chose que je pensais était simple: remplacer toutes les occurrences d'une expression dans une chaîne de texte avec une autre phrase. Cependant, pour une raison que seule la première instance est remplacé et le reste ignoré. J'ai piraté une solution en cours d'exécution à travers la chaîne de remplacer la fonction autour de 9 fois, de sorte que le résultat final a tous les <br />
remplacé, mais j'aimerais savoir ce que j'ai fait de mal. Merci à l'avance!
Mon Code:
var importPostAddress = "123 Fake Street<br />Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />";
var postAddress = importPostAddress.replace("<br />",", ");
Résultat attendu lors du suivi de postAddress
:
123 Fake Street, Mytown, Mycounty, Mycountry, PO5 7CD, ,
Résultat réel:
123 Fake Street, Mytown<br />Mycounty<br />Mycountry<br />PO5 7CD<br /><br />
Vous devez vous connecter pour publier un commentaire.
Afin de résoudre ce problème, vous devez faire juuuust un peu plus de travail.
Je suis en utilisant un
RegExp
afin de passer le /g drapeau, ce qui rend le remplacement mondiale (remplacer toutes les occurrences de l'expression). J'ai également eu à s'échapper de la/
dans<br />
à l'aide d'une barre oblique inverse\
, car c'est un caractère de contrôle dans les expressions régulières./
à la place des guillemets pour définir une chaîne de caractères?? N'est ce efficace de dire:var pattern:RegExp = "<br \/>"g;
? ou"<br \/>"/g;
/
à la place des guillemets pour la définition d'unRexExp
. Cela dit en fait de remplacer le modèle (dans ce cas, le modèle n'a pas de spécial regex caractéristiques, il est donc pratiquement une Chaîne de caractères)<br />
mondiale.Sam a une bonne solution, un autre est:
n
, peut-êtrebackslash
ou peut-être la utilisateur veut entrer des caractères aléatoires que j'ai besoin de supprimer à partir de chaînes de caractères.