Pourquoi JavaScript Replace remplace uniquement la première instance : exploration de l'indicateur RegExp
Lors de l'utilisation de la méthode de remplacement de JavaScript pour rechercher et remplacer une chaîne par une autre , vous pouvez rencontrer le comportement où seule la première instance de la chaîne cible est remplacée. Ce problème se produit car le comportement par défaut de replace consiste à effectuer une opération de recherche et de remplacement unique et non globale.
Remplacement global : l'indicateur RegExp
Pour tout remplacer instances d'une chaîne cible dans une chaîne, vous devez spécifier l'indicateur "global" (g) dans l'expression régulière utilisée dans la méthode de remplacement. Cet indicateur indique que l'opération de recherche et de remplacement doit avoir lieu sur toute la chaîne, en remplaçant chaque occurrence de la chaîne cible.
Par exemple, dans votre code :
var date = $('#Date').val(); // e.g., "12/31/2009"
var id = 'c_' date.replace("/", ''); // c_1231/2009 (wrong)
Pour remplacer toutes les occurrences du caractère "/", vous devez spécifier le flag "global":
var id = 'c_' date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)
Vous pouvez également utiliser la syntaxe plus courte :
var id = 'c_' date.replace(/\//g, ''); // c_12312009 (correct)
En spécifiant l'indicateur "global", la méthode de remplacement remplacera chaque caractère barre oblique dans la chaîne de date, ce qui donnera la sortie correcte.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3