webForumDet fria alternativet

Stor bokstav i första ordet

Flash

8 svar · 643 visningar · startad av Maacus

Medlem sedan jan. 2007108 inlägg
Frågan#1

Jag försöker hitta en funktion som gör om den första bokstaven i första ordet i en sträng till UpperCase. Har surfat runder ett bra tag utan att jag funnit någon lösning. Är det någon som har stött på detta tidigare och har en lösning?

Medlem sedan dec. 20025 483 inlägg
#2

Välkommen till wF!

str.replace(/^(.).*/, function(){ return arguments[1].toUpperCase() + arguments[0].substring(1); });
Medlem sedan jan. 2007108 inlägg
#3

Peter S skrev:

Välkommen till wF!

str.replace(/^(.).*/, function(){ return arguments[1].toUpperCase() + arguments[0].substring(1); });

Tackar!
Är inte riktigt med på hur jag ska använda koden.
Variablen som jag har strängen i heter itemSource.

Medlem sedan dec. 20025 483 inlägg
#4

Då bör det bli

itemSource = itemSource.replace(/^(.).*/, function(){ return arguments[1].toUpperCase() + arguments[0].substring(1); });
Medlem sedan jan. 2007108 inlägg
#5

så tänkte jag med men får inte det att fungera. Får följande fel meddelande.
"Operator '=' must be followed by an operand".

Medlem sedan dec. 20025 483 inlägg
#6

Nu vet jag egentligen ingenting om Flash, men efter litet Googlande visade det sig att det kan bero på skräptecken som är i vägen. Vad händer t.ex. om du utelämnar blankstegen före och efter likhetstecknet?

Medlem sedan jan. 2007108 inlägg
#7

Blankstegen mellan = tecknet spelar ingen roll. De måste va någon annan del av koden som det är fel i. Hur fick du tag i koden?

Medlem sedan dec. 20025 483 inlägg
#8

Jag skrev ihop den. Eftersom såväl JS som AS bygger på ECMAScript tycker jag ovanstående bör fungera för dig också (det fungerar i JS).

Kan det ha med versionen av Flash att göra? Vad händer om du definierar den anonyma funktionen vid sidan av?

itemSource = itemSource.replace(/^(.).*/, f);

function f(){ return arguments[1].toUpperCase() + arguments[0].substring(1); }

Testa att göra detsamma med regexp:et.

Medlem sedan maj 2005704 inlägg
#9

regexp finns bara om du publicerar för Flash Player 9, vilket kräver att du använder Flash 9 beta eller Flex 2.
Så förmodligen får du hålla tillgodo med "substr", vilket borde duga utmärkt om jag förstått frågan rätt:

itemSource = itemSource.substr(0,1).toUpperCase() + itemSource.substr(1);
259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)