2012-07-06 5 views
5

Dies ist der Titel meiner Seite lautet:Capitalize Worte Titelseite bis Bindestrich

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

Ich habe den Titel der Seite bis zum ersten hífen Kapital (-). Dies ist mein Code, aber den zweiten Teil und den ersten Bindestrich verloren.

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

Warum auf die Funktion der _str_ Parameter übergeben, wenn Sie es überschreiben in Zeile 1 deiner Funktion sowieso? – Chris

+1

@roybatty Was ist die korrekte Ausgabe für dich-> 'JOHN SMITH' oder' John Smith'? Was meinst du mit "kapitalisieren"? – Engineer

+0

Großbuchstaben bedeutet in der Regel den ersten Buchstaben, nicht alle, die das Verständnis ist, auf dem ich meine Antwort basiert habe, so hoffe ich, das ist, was er meinte – Utkanos

Antwort

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

Sie werden 'JOHN SMITH' machen, nicht' John Smith' – Engineer

+0

Überprüfen Sie dann Kommentar –

+0

und seine Frage war über den zweiten Teil verloren – epoch

0

Fasst Antworten "best of" + mein Salzkorn:

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

immer gut in einem Kern REGEX Weg ...

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

Ausgänge zu werfen:

"Some Words - are - here" 
+0

Nizza. Aber '/^[^ \ -] */g' scheint für die 1. Regexp genug zu sein. –

+0

Ach ja, natürlich. Ich habe den Blick versehentlich aus einem früheren Versuch herausgelassen. Danke für die Köpfe hoch. – Utkanos

0

Dieser Code wird Ihnen helfen.

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 versuchen diese bitte: http://jsfiddle.net/LK3Vd/

Lemme wissen, ob ich etwas verpasst.

this helps :)

Code

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

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

Diese helfen könnte ..

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

}