2010-09-23 120 views
1

我一直在使用jQuery地址插件,它传递了一个event.value,可能导致/messages/inbox/。我希望能够将其转化为Messages InboxjQuery capitilize每个单词的第一个字母

我不确定要使用哪种正则表达式以及如何执行此操作。目前我有这个,但这对我来说太麻烦了。

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

不错。注意JavaScript正则表达式的局限性:只有A-Z,a-z,0-9和_被视为单词字符,所以以其他字符(如重音符号)开头的单词不会正确大写。 – 2010-09-23 10:34:55

+0

@Tim:非常好,谢谢你:-) – 2010-09-23 13:59:56

相关问题