Js regex: remplacer tous les chiffres dans la chaîne de caractères

je dois remplacer tous les chiffres.

Ma fonction ne remplace 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"
25
demandé sur Keith L. 2012-07-04 15:37:29

4 réponses

vous devez ajouter le drapeau "global" à votre regex:

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

ou, peut-être plus joli, en utilisant le haut-dans le sens littéral regexp syntaxe:

.replace(/[0-9]/g, "X")
52
répondu Gustav Barkefors 2012-07-04 11:40:29

Utiliser

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

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

Ou rester avec votre RegExp constructeur:

s.replace(new RegExp("\d", "g"), "X")
7
répondu Joey 2012-07-04 11:40:24

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

Vous pouvez utiliser\dpour les chiffres, comme il est plus court que celui de[0-9].

JavaScript:

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

Sortie:

XX.XX.XXXX
3
répondu Ωmega 2012-07-04 11:47:39

trouver les nombres puis les remplacer par des chaînes qui ont spécifié. Il est réalisé par deux méthodes

  1. à l'Aide d'une expression régulière littérale

  2. Utilisation du mot-clé RegExp object

à l'Aide d'une expression régulière littérale:

<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 en savoir plus détails:

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

2
répondu Mohamed Rasik 2016-05-24 19:52:03