2010-09-18 5 views
1

Je tapais dans accidentially \ s au lieu de « »,Pourquoi ce code JavaScript est-il invalide dans Firefox?

while(cname.charAt(cname.length-1) == "\s") 

sont pas des caractères spéciaux résolus dans tous les littéraux de chaîne?

De plus, quelle est l'expression régulière appropriée pour couper tous les onglets et espaces de EOL? Le sélecteur my /(.*)[\s\t]/ ne fonctionne tout simplement pas! Donc j'ai dû me replier sur while(if.. substr).

Répondre

4

\s est uniquement une classe de caractères pour les espaces, les tabulations et les retours à la ligne dans une expression régulière. "\ s" devient juste "s" dans ce cas.

Suppression des onglets et des espaces de EOL avec:

cname = cname.replace(/\s+$/mg, ''); 
  • \s+ correspond à un ou plusieurs espaces ou des tabulations
  • $ correspond à la fin du sujet
  • Le drapeau m provoque $ pour correspondre à la la fin d'une ligne, et non la chaîne. Le drapeau g provoque le remplacement de toutes les correspondances.
2

\s est la syntaxe légale dans une regex, mais ce n'est pas la syntaxe légale dans une chaîne.

Ceci est bien:

/\s/ 

C'est illégal:

"\s" 
Questions connexes