2010-12-06 6 views
6

J'utilise le code suivant pour convertir une chaîne dynamique en classe valide.Cross navigateur Javascript regex

domain.replace('.','_','gi') 

Cela fonctionne très bien dans tous les principaux navigateurs, mais pas dans Internet Explorer et je me demande pourquoi. Les indicateurs gi sont globaux et insensibles à la casse, mais leur suppression signifie que le remplacement ne fonctionne pas non plus dans Firefox.

Des idées sur comment je change cela pour le rendre plus convivial avec plus de brower?

+1

Que se passe-t-il ou ne se passe-t-il pas? Quel est le résultat attendu et réel? –

Répondre

10

Vous aurez besoin d'utiliser une expression rationnelle réelle au lieu d'une chaîne:

domain.replace(/\./g, "_") 

Le troisième argument (drapeaux) est non standard .

+0

@elusive: Pourquoi auriez-vous besoin du drapeau 'i' pour un point? –

+0

Bon point. Je l'ai reconnu quelques secondes après avoir soumis. Désolé pour ça. +1 pour l'indice non-standard;) – jwueller

+0

Cracking! C'est ce qui me manquait. Acceptera dans 6 minutes :) –

7

Vous devez le faire comme ceci:

domain.replace(/\./g, '_'); 
Questions connexes