2012-07-06 17 views
5

Đây là tiêu đề của trang web của tôi:hoa từ trong trang tiêu đề cho đến khi gạch nối

<title>john smith - Site and site - jobs</title> 

tôi phải tận dụng các tiêu đề của trang cho đến khi hifen đầu tiên (-). Đây là mã của tôi, nhưng bị mất phần thứ hai và dấu gạch ngang đầu tiên.

function toTitleCase(str){ 
    var str = document.title; 
    subTitle = str.split('-')[0]; 
    return str.substring(0,str.indexOf('-')).replace(/\w\S*/g, function(txt){ 
     return txt.charAt(0).toUpperCase() + txt.substring(1); 
    }); 
} 
document.title = toTitleCase(document.title); 
+1

Tại sao đi qua các tham số _str_ đến chức năng nếu bạn ghi đè lên nó trong dòng 1 của hàm của bạn? – Chris

+1

@roybatty Đầu ra chính xác cho bạn-> 'JOHN SMITH', hoặc' John Smith' là gì? Ý bạn là gì khi '' viết hoa' '? – Engineer

+0

Viết hoa thường có nghĩa là chữ cái đầu tiên, không phải tất cả, đó là sự hiểu biết tôi đã dựa vào câu trả lời của tôi, vì vậy tôi hy vọng đây là ý nghĩa của anh ấy – Utkanos

Trả lời

1
function toTitleCase(str){ 
    str = str.split('-'); 
    str[0]=str[0].replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 
    return str.join("-"); 
    } 
document.title = toTitleCase(document.title); 
+0

Bạn sẽ thực hiện 'JOHN SMITH', chứ không phải' John Smith' – Engineer

+0

Kiểm tra sau đó chú thích –

+0

và câu hỏi của anh ấy về phần thứ hai bị mất – epoch

0

câu trả lời Tổng kết "hay nhất" + hạt của tôi về muối:

String.prototype.capitalize = function() { 
    return this.replace(/\b[a-z]/g, function ($0) { return $0.toUpperCase(); }); 
}; 

function capitalizeTitle() 
{ 
    document.title = document.title.replace(/^[^\-]*/, function($0) { 
    return $0.capitalize(); 
    }); 
} 

capitalizeTitle(); 
1

Luôn luôn tốt để ném vào một con đường REGEX hạt nhân ...

var str = "some words - are - here"; 
console.log("this is - a - string".replace(/^[^\-]*/, function($0) { 
    return $0.replace(/\b[a-z]/g, function($0) { return $0.toUpperCase(); }); 
})); 

Đầu ra:

"Some Words - are - here" 
+0

Tốt. Tuy nhiên '/^[^ \ -] */g' có vẻ là đủ cho regexp thứ nhất. –

+0

Ah vâng, tất nhiên. Tôi đã bỏ qua việc nhìn về phía trước do nhầm lẫn từ lần thử trước đó. Cảm ơn cho những người đứng đầu lên. – Utkanos

0

Mã này sẽ giúp bạn.

function toTitleCase(str) { 
     subTitle = str.split('-')[0].capitalize(); 
     return subTitle + str.substring(subTitle.length); 
    } 

    String.prototype.capitalize = function() { 
     return this.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); 
    } 
0

Hey thử này xin vui lòng: http://jsfiddle.net/LK3Vd/

lemme biết nếu tôi bỏ lỡ bất cứ điều gì.

Hope this helps :)

đang

var str = $('#foo').html(); 
str = str.substring(0, str.indexOf('-')); 

str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) { 
    return letter.toUpperCase(); 
}); 
0

này có thể giúp ..

function ok() 
{ 
    var str = document.title; 
    document.title=str.substring(0, str.indexOf('-')).toUpperCase()+str.substring(str.indexOf('-'),str.length); 

}