2012-07-18 6 views

Répondre

7
input = input.replace(/\.+/g, "."); 
+2

en fait, vous devez faire 'replace (/\.+/g,". ")' Si vous voulez remplacer toutes les correspondances. Sinon, vous obtenez '" blah.blah..blah .... blah "'. – bhamlin

+0

@bhamlin Bon point, merci. –

+0

Je ne suis pas sûr à ce sujet, mais '/\.\.+/ g' pourrait donner des performances légèrement meilleures car il ne perdrait pas de temps à remplacer un seul' .' avec lui-même. Cela pourrait juste être paranoïaque lorsque vous travaillez avec des chaînes, cependant. – dlras2

0

Un remplacement Javascript d'expression régulière vient à l'esprit, la recherche (. +) Et les remplacer par.

Quelque chose comme

s.replace(/(\.+)/mg,"."); 

Untested, mais devrait être assez proche de vous donner un coup de pouce dans la bonne direction. Bonne chance.

0

Entre les crochets, vous définissez votre caractère, par ex. avec « »:

var s = "blah ... blah ..."; 
s.replace(/[.]+/gi, '.') 
alert(s); 

donc: remplacer un nombre quelconque de X avec l'un des Y

s.replace(/[X]+/gi, 'Y'); 
2

Si vous devez faire correspondre des caractères répétés et non seulement une période, vous pouvez utiliser:

input = input.replace(/(.)\1+/g, "$1"); 

Alors blaaaah...blahhh..blah....bbblah devient blah.blah.blah.blah

Questions connexes