J'ai créé une fonction de tri javascript pour trier une liste d'articles par titre. Je vais convertir tous les mots triables en lettres majuscules, donc je n'ai pas à gérer les différences associées aux minuscules et aux majuscules. J'ai du mal à créer une expression qui efface tous les caractères avant le mot qui ne sont pas [A-Z]. Je ne connais pas très bien les expressions régulières et toute aide serait appréciée. Je cherche quelque chose comme ça ...

function cleanup(e) {
// delete leading not alphanum characters
// capitalize for sorting
//  str.replace(/^\s*/, '').replace(/\s*$/, ''); 
return(e);
}
0
Martin Brody 1 déc. 2011 à 21:26

3 réponses

Meilleure réponse

Si vous utilisez le délimiteur i, l'expression régulière sera insensible à la casse, vous pouvez l'utiliser lorsque vous comparez des mots.

Essayez ceci http://jsfiddle.net/5Rxs5/

Remplacera tous les caractères non a-zA-Z avant le texte:

var str = "#$DSFfd#_)#$$";

alert(str.replace(/[^a-z]+/i, ""))

Si vous souhaitez supprimer tous les caractères non a-zA-Z, faites cela (ajout du délimiteur g, ce qui signifie global):

var str = "#$DSFfd#_)#$$";

alert(str.replace(/[^a-z]+/gi, ""))

Premier caractère majuscule

var str = "#$abcd#_)#$$";
str = str.replace(/[^a-z]+/i,"");
str = str.match(/(^.)(.+)/);
str = str[1].toUpperCase() + str[2];

alert(str);

Alertes:

Abcd#_)#$$
1
Niels 1 déc. 2011 à 17:37

str.replace(/^[^\w\d]*/, '');

Testé à l'aide de: http://www.regextester.com/

1
MattJenko 1 déc. 2011 à 17:38

Essaye ça:

str.replace(/^[^a-z]+/i, '').toUpperCase();
1
rabusmar 1 déc. 2011 à 17:31