webForumDet fria alternativet

Ändra gemener till versaler och vice versa

JavaScriptur Javascript

4 svar · 786 visningar · startad av tronez

Medlem sedan juli 2001728 inlägg
Frågan#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...

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

Medlem sedan juli 2001728 inlägg
#5

tack, det mesta klarnade nu :birp

252 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
124 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)