webForumDet fria alternativet

string.replace() problem

3 svar · 309 visningar · startad av petergrennanet

petergrennanetMedlem sedan dec. 1999258 inlägg
#1

Detta fungerar:

var mystring = "Hello World!";
mystring = mystring.replace("!","?");

och returnerar: mystring: "Hello World?"

detta funkar INTE som det ska:

var mystring = "Hello World!";
if (mystring = mystring.replace("!","?")) {
  truevalue++;
}

Det blir alltid true, aven om inget blir replace'at.
Antar att if () bara kollar om det blir lyckat eller inte.

Hur skriver jag en battere IF case for detta?

------------------
¬ peterbe.com¬

@ndersMedlem sedan juni 200032 969 inlägg
#2

om du gör en jämförelse i javascript skall du ha två likamed tecken. alltså:

var mystring = "Hello World!";
if (mystring = mystring.replace("!","?")) {
truevalue++;
}

med ett = gör du en tilldelning.

och som if-satsen är skriven så skall den ju returnera true om ingenting ersätts.

[redigering]: ok, när man skriver två =-tecken tas det ena bort alltså. inte bra. vad är alltså problemet?[/redigering]

------------------
don't follow your friends -- inflate them

[Redigerat av @nders den 14 aug 2000]

@ndersMedlem sedan juni 200032 969 inlägg
#3

om du gör så här då?

var mystring = "Hello World!";
var bengan; 
bengan = (mystring == mystring.replace("!","?"));

alert (bengan);

så bör den alerta false, eftersom "Hello World!" inte är samma som "Hello World?".

om du byter ut frågetecknet till ett utropstecken i parentesen så gör du ju en ersättning, men resultatet blir detsamma, och skall alltså alerta true.

wass?

------------------
don't follow your friends -- inflate them

[Redigerat av @nders den 14 aug 2000]

petergrennanetMedlem sedan dec. 1999258 inlägg
#4

LOSTE DET!!!

Detta gick inte, for det returnerade true hela tiden:

var mystring = "Hello World!";
if (mystring = mystring.replace("!","?")) {
truevalue++;
}

Tydligen sa fungerar inte Javascript som PHP (gammal PHP vana).

Skit samma, sa har loste jag det till slut:

function sweToHTML (context,onoff) {
	swechars = new Array("å","Å","ä","Ä","ö","Ö");
	HTMLchars = new Array("å","Å","ä","Ä","ö","Ö");
	if (onoff < 0)
	{
		alert("\n\n\treverse order or arrays\t\n\n");
	}
		
	var limit=0;
	while (limit < 1)
	{
		limit=1;
		for (i=0; i<swechars.length; i++)
		{
			if (context.match(swechars[i]))
			{	context = context.replace(swechars[i],HTMLchars[i]); limit=0;	}
		}
	}

	return (context);
}

Som ni ser sa saknas det en liten bit koden. Kommer senare.

------------------
¬ peterbe.com¬

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