web-dev-qa-db-fra.com

JS regex: remplace tous les chiffres de la chaîne

Je dois remplacer tous les chiffres.

Ma fonction ne remplace que le premier chiffre.

var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]"), "X")); // returns "X4.07.2012"
                                            // should be XX.XX.XXXX"
28
Keith L.

Vous devez ajouter le drapeau "global" à votre expression rationnelle:

s.replace(new RegExp("[0-9]", "g"), "X")

ou, peut-être plus joli, en utilisant la syntaxe littérale intégrée regexp

.replace(/[0-9]/g, "X")
56
Gustav Barkefors

Utilisation

s.replace(/\d/g, "X")

qui remplacera toutes les occurrences. g signifie correspondance globale et ne cessera donc pas de correspondre après la première occurrence.

Ou rester avec votre constructeur RegExp:

s.replace(new RegExp("\\d", "g"), "X")
7
Joey

Le modificateur/gest utilisé pour effectuer une correspondance globale (recherche toutes les correspondances plutôt que de s'arrêter après la première)

Vous pouvez utiliser\dpour le chiffre, car il est plus court que[0-9].

JavaScript:

var s = "04.07.2012"; 
echo(s.replace(/\d/g, "X"));

Sortie:

XX.XX.XXXX
4
Ωmega

trouver les numéros et ensuite remplacés par des chaînes spécifiées. Il est réalisé par deux méthodes

  1. Utilisation d'un littéral d'expression régulière

  2. Utilisation d'un objet mot-clé RegExp

Utilisation d'un littéral d'expression régulière:

<script type="text/javascript">

var string = "my contact number is 9545554545. my age is 27.";
alert(string.replace(/\d+/g, "XXX"));

</script>

** Sortie: ** Mon numéro de contact est XXX. mon âge est XXX.

pour plus de détails:

http://www.infinetsoft.com/Post/How-to-replace-number-with-string-in-JavaScript/1156

3
Mohamed Rasik

Vous avez oublié d'ajouter l'opérateur global. Utilisez ceci:

var s = "04.07.2012";
alert(s.replace(new RegExp("[0-9]","g"), "X")); 

0
coder