webForumDet fria alternativet

Ändra gemener till versaler och vice versa

4 svar · 786 visningar · startad av tronez

tronezMedlem sedan juli 2001728 inlägg
#1

function konvertera(text)
{
	/*
		Skapa ett mönster som letar reda på alla gemena och versala A
	*/
	var pattern = /[aA]/g;
	
	var text = prompt("Skriv lite text, vettja!","");
	/*
		Byt ut alla tecken som matchar mönstret vi skapade ovanför med ett #
	*/
	text = text.replace(pattern, "#");
	
	
	// Skriv ut den ny texten
	document.write(text);	
	
}

Denna kod funkar som jag vill, dvs byta ut alla A a mot #, men om jag vill göra så att alla gemener blir versaler och versaler blir gemener, hur ska mna gå tillväga då?

Går det att skriva i RegExp, lr måste man använda sig av toLowerCase och toUpperCase?

Men då är frågan hur man ska köra dessa tillsammans, för om man text.toLowerCase() först så blir ju alla gemener, och om man sen kör text.toUpperCase, då blir ju alla stora ist.

NÃ¥n som fattar vad jag menar...

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Exempel:

String.prototype.swicthCase = function(){
	var str=new String();
	for (var n=0;n<this.length;n++){
		str+=(this.charAt(n)==this.charAt(n).toLowerCase())?this.charAt(n).toUpperCase():this.charAt(n).toLowerCase();
	}
	return str;
}

var text = prompt("Skriv lite text, vettja!","");
alert(text.swicthCase());
tronezMedlem sedan juli 2001728 inlägg
#3

tack, funkade perfekt, men skulle du kunna förklara lite närmre vad koden gör(jag vet ju vad resultat blir, men hur blir det det?)?

dessa 2 speciellt

String.prototype.swicthCase = function(){

str+=(this.charAt(n)==this.charAt(n).toLowerCase())?this.charAt(n).toUpperCase():this.charAt(n).toLowerCase();
Engine^Medlem sedan dec. 20003 887 inlägg
#4

Mmm...

if(this.charAt(n) == this.charAt(n).toLowerCase())
  str += this.charAt(n).toUpperCase();
else
  str += this.charAt(n).toLowerCase();

Ett kompaktare sätt att skriva en if-sats. Kallas inline if-statement om jag inte tar fel.

String.prototype.switchCase = function() {...}

Jag skulle förklara det som att skapa en extra metod för klassen String. Istället för att göra en vanlig funktion

function switchCase() {...}

text = switchCase(text);

Jojoxx kanske har en bättre förklaring om det behövs ;)

tronezMedlem sedan juli 2001728 inlägg
#5

tack, det mesta klarnade nu :birp

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)