2010-09-23 4 views
1

J'ai utilisé le plugin d'adresse jQuery et il transmet un événement.valeur qui peut aboutir à /messages/inbox/. Je veux être en mesure de transformer cela en Messages Inbox.jQuery capitilise la première lettre de chaque mot

Je ne sais pas quel regex utiliser et comment le faire. Actuellement, j'ai ceci, mais c'est trop compliqué pour moi.

var href = event.value != '/' ? event.value : '/wall/'; 
var title1 = href.replace('/', ""); 
var title2 = title1.replace('/', " "); 
var myTitle = title2.replace('/', ""); 
$.address.title("My-Site | " + myTitle); 

Répondre

6

Ceci est un peu plus net; élaguer les caractères de début et de fin, puis remplacez le milieu, puis exécutez un regex remplacer pour échanger les caractères pour les versions en majuscules:

var href = event.value != '/' ? event.value : '/wall/', 
    title = href.slice(1, -1).replace("/", " "), 
    myTitle = title.replace(/\b[a-z]/g, function ($0) { 
     return $0.toUpperCase(); 
    }); 

$.address.title("My-Site | " + myTitle); 

Méthodes utilisées:

+3

Nice. Méfiez-vous des limitations des expressions régulières JavaScript: seuls A-Z, a-z, 0-9 et _ sont considérés comme des caractères de mots, de sorte que les mots commençant par d'autres caractères tels que les lettres accentuées ne seront pas correctement mis en majuscule. –

+0

@Tim: un très bon point, merci :-) –

Questions connexes