"Leif Neland" <leif@neland.dk> writes:
> x-postet til perl, da det jo også er et regexp-problem
> Fut: dk.edb.internet.webdesign.clientside
Så kunne jeg forstå en krydspost til en regexp-gruppe, men
Perl-gruppen er altså om perl, ikke vilkårlige features det
har tilfælles med tilfældige andre sprog.
> String.prototype.toProperCase = function(){
> return this.toLowerCase().replace(/\w+/g,function(s){
> return s.charAt(0).toUpperCase() + s.substr(1);
> })
> }
....
> Men æøå opfattes af \w ikke som et bogstav, så "nørrebyøster" bliver til
> "NøRrebyøSter"
>
> Kan man lære \w æøå?
Nej, men man kan skrive det så det matcher det du vil have:
function capitalize(string){
return string.toLowerCase().replace(/[a-zæøå]+/g, function(s){
return s.charAt(0).toUpperCase() + s.substr(1);
})
}
og så:
onchange="this.value=capitalize(this.value);"
(jeg synes ikke det er pænt at pille for meget ved de indbyggede
prototyper, så jeg foretrækker at have funktionen for sig selv).
> Jeg bruger nu /\S+/g i stedet.
Massivt overkill. Matcher alt der ikke er mellemrum, også fx punktummer.
> Men kan man "trække cifre fra \S", så der bliver store bogstaver efter tal,
> "Bygade 1A"?
Se ovenfor.
På den anden side er der nogle ord der ikke skal kapitaliseres.
Hvis jeg indtaster "Nørregade 24 2.tv", så skal "tv" ikke blive "Tv".
/L "Pas på, du får hvad du beder om"
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'