---
title: "Capitalize!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/158428-capitalize"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "oskars"
published: "2007-03-21T07:46:18.000Z"
updated: "2007-03-21T10:51:07.000Z"
replies: 6
views: 420
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/158428-capitalize"
---

# Capitalize!

## #1 — oskars, 2007-03-21T07:46Z

Tjenare!

Jag har sökt på google efter "Javascript Capitalize" och där fick jag fram flera förslag på funktioner, men eftersom mina javascriptkunskaper eg. endast kan mätas med decilitermått så behöver jag ändå hjälp!

Som den här funktionen t.ex:
<http://www.mediacollege.com/internet/javascript/text/case-capitalize.html>

Måste man ha en så "stor" funktion för en, i mina ögon, relativt enkel grej?

Och grejen är att jag vill göra detta ungefär så här:

```
function writeText {

   var minText = "oskar"

   blabla.blabla.value = capitalize(minText)

}
```

Jag kommer vilja göra så här på mer än 10st ställen i koden, så jag behöver ett smidigt sätt för det...

Hoppas någon pallar att hjälpa mig :)

Oskar

Permalänk: https://www.webforum.nu/p/158428

## #2 — colione, 2007-03-21T08:25Z

```
String.prototype.capitalizeFirst=function() {
	var a=this.split(' ')
	for (var n=0; n<a.length; n++) {
		a[n]=a[n].substring(0,1).toUpperCase().concat(a[n].substring(1,a[n].length).toLowerCase())
	}
return a.join(' ')
}
```

Anropas via:

```
"en sträng".capitalizeFirst()
```

Strängen kan lagras i en variabel, typ:

```
strStr="Min sträng"
blabla.blabla.value=strStr.capitalizeFirst()
```

Permalänk: https://www.webforum.nu/p/1949850

## #3 — oskars, 2007-03-21T08:51Z

Grymt! Mycket fin lösning! Guldstjärna!

Tack :)

Permalänk: https://www.webforum.nu/p/1949861

## #4 — spango, 2007-03-21T09:26Z

Nu är förstås frågan redan löst men jag vill ändå presentera en kortare lösning som jobbar med ordgränser (inklusive radbrytningar, skiljetecken etc.) i stället för bara mellanslag :)

```
String.prototype.capitalize = function () {
    return this.replace(/[a-zåäö]+/ig, function (s) {return s.charAt(0).toUpperCase() + s.substring(1).toLowerCase();});
}
alert("hej alla!".capitalize());
```

**red.** ÅÄÖ räknas visst som ordgränser...

Permalänk: https://www.webforum.nu/p/1949870

## #5 — colione, 2007-03-21T09:39Z

Och om du fortfarande vill anropa spangos kortare lösning genom att använda:

sträng.Metod()

istället för metod(sträng)

kan vi skriva om den som:

```
Använd inte denna, använd spangos.
```

anropas med

```
sträng.capWords()
```

Det vi gör genom att använda String.prototype.namn

är att lägga till en ny metod till javscripts inbyggda strängobjekt så den blir åtkomlig på samma sätt som

```
sträng.toUpperCase()
```

vilken redan är inbyggd i string-objektet. Självklart är det personligt vilken man föredrar, men jag gillar att augmentera (lägga på metoder/funktioner) objekten

/red Nu han spango editera sitt inlägg innan jag han posta mitt.. :p

Permalänk: https://www.webforum.nu/p/1949872

## #6 — spango, 2007-03-21T09:48Z

> **colione skrev:**
>
> /red Nu han spango editera sitt inlägg innan jag han posta mitt.. :p

Bara för att jävlas med dig :p och för att det är mycket snyggare, såklart.
Rättade även en bugg som ställde till elände med svenska tecken. (Jag drömmer om ett regexp-bibliotek där icke-ASCII inte strular.)

Permalänk: https://www.webforum.nu/p/1949878

## #7 — Travoni, 2007-03-21T10:51Z

alert("nils-oskar pettersson".capitalize());
Nils-Oskar Pettersson

alert("nils-oskar pettersson".capitalizeFirst());
Nils-oskar Pettersson

Permalänk: https://www.webforum.nu/p/1949888

---

Tråden på webben: https://www.webforum.nu/amne/javascript/158428-capitalize
