2010-09-23 3 views
1

Я использую плагин адреса jQuery, и он передает событие.значение, которое может привести к /messages/inbox/. Я хочу, чтобы это можно было превратить в Messages Inbox.jQuery capitilize first letter каждое слово

Я не уверен, какое регулярное выражение использовать и как это сделать. В настоящее время у меня есть это, но для меня это слишком грязно.

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

ответ

6

Это немного более аккуратный; отсечь начальные и конечные символы, а затем заменить середину, а затем запустить регулярное выражение замены для замены символов в верхнем регистре версии:

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); 

Используемые методы:

+3

Nice. Остерегайтесь ограничений регулярных выражений JavaScript: только слова A-Z, a-z, 0-9 и _ считаются символами слов, поэтому слова, начинающиеся с других символов, таких как буквы с акцентом, не будут правильно заглавные. –

+0

@Tim: очень хороший момент, спасибо :-) –

Смежные вопросы