2010-08-21 5 views
1

Pourquoi le modèle suivant dans IE et Firefox correspond-il à un résultat différent?IE et expression rationnelle Firefox question

var str = 'a,b,c , d, e ,f'; 
var matches = str.split(/(\s+)?,(\s+)?/); 
alert(matches); 

IE: 
a,b,c,d,e,f 

firefox: 
a,,,b,,,c, , ,d,, ,e, ,,f 

comment faire correspondre IE comme résultat? s'il vous plaît me répondre :(

IE8 et Firefox v3.6.8

+0

quelles versions de IE et FireFox? –

Répondre

3
var str = 'a,b,c , d, e ,f'; 
var matches = str.split(/\s*,\s*/); 
alert(matches); 

La raison pour laquelle vous obtenez les entrées supplémentaires dans Firefox est parce que les parenthèses (()) dans votre expression régulière sont capturés en matchs supplémentaires. C'est normalement le comportement attendu et je dirais que IE a un bogue parce qu'il ne le fait pas Dans mon exemple, il n'y a pas de parenthèses dans la regex, donc vous obtenez seulement le texte entre les correspondances

+0

Réponse révoquée, +1, puisque vous saviez réellement pourquoi c'était doi ng que xD – Matchu

Questions connexes