2010-02-11 6 views
2

Utilisation de JavaScript et je veux remplacer tout texte entre @ anytext @ avec du texte. Je veux le rendre générique, donc je pense à utiliser l'expression régulière. Comment fait-on ça?Manipulation de texte JavaScript

Exemple: remplacer (« @ bonjour @ », « Salut »)

+0

a tout changé de jQuery pour JavaScript, car il n'a rien à voir avec jQuery. – Yacoby

+0

J'ai besoin de faire une petite manipulation dans ce.Je dois récupérer le texte correspondant, puis remplacer le texte correspondant.Quelque chose comme ceci Remplacer ("@ anytext @", @[email protected]) Ma chaîne peut avoir @ anytext @ n'importe où dans la chaîne plusieurs fois . – Dee

Répondre

2

Essayez ceci:

str.replace(/@[^@][email protected]/g, 'Hi') 

Cela supprimera toutes les séquences de @ … @ globalement avec Hi.


Modifier Quelques explications:

  • /…/ est le regular expression literal syntax in JavaScript
  • @[^@][email protected] décrit une séquence quelconque d'un @ littéral, suivi par un ou plusieurs (+ quantificateur) des caractères qui ne sont pas un @ (classe charcater niée [^@]), suivie d'un littéral @
  • le drapeau g dans /…/g permet des correspondances globales; sinon seul le premier match serait remplacé
+0

Travaux.S'il vous plaît fournir quelques explications.Je n'ai trouvé aucun où je peux donc créer mes propres expressions régulières.Merci – Dee

+0

Got it.Thanks beaucoup. – Dee

0

Vous pouvez utiliser la fonction regex de jquery pour y parvenir ... donc trouver le @ s 'avec une expression régulière et utiliser ensuite la fonction de remplacement avec le texte que vous voulez.

0

Cela n'a rien à voir avec jQuery, mais simplement javascript.

var regexp = new RegExp("@([^@]+)@"); 
text.replace(re, "replacement text"); 

Mais que voulez-vous dire par générique? Comment génériques voulez-vous le faire?

Vous pouvez trouver plus d'informations sur les expressions régulières sur http://regexp.info y compris comment utiliser en en Javascript

+0

générique je veux dire n'importe quel texte.Votre sol fonctionne grâce – Dee