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"
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")
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")
Le modificateur/g
est 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\d
pour 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
trouver les numéros et ensuite remplacés par des chaînes spécifiées. Il est réalisé par deux méthodes
Utilisation d'un littéral d'expression régulière
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
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"));