webForumDet fria alternativet
Logga in / Bli medlem

söka i strängar(variabler)

JavaScript

5 svar · 318 visningar · startad av Prästen

Medlem sedan dec. 2000537 inlägg
Trådstart#1

Hej.

Jag skulle behöva lite hjälp.

Det finns ju ett antal sökmetoder i javascript för att söka i strängar. såsom IndexOf och liknande. Jag skulle gärna vilja veta vad det finns för fler sökmetoder?. Nån som kan hjälpa?. :)

Medlem sedan mars 2000126 inlägg
#2

Stränghantering

Här har du en bra länk i ämnet.

http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/string.html

//Broskan

Medlem sedan aug. 20022 027 inlägg
#3

Du kan även titta på reguljära uttryck (regular expression).

Medlem sedan juni 20004 308 inlägg
#4

Ett litet exempel på det.

var str="Detta är en text.";
if(str.match(/[åäö]/i)){ alert("Texten innehåller å, ä eller ö."); }

RegExp

Medlem sedan dec. 2000537 inlägg
#5

Hmm IndexOf verkar inte funka på Arrayer?
if(arr[y].stad.IndexOf(document.MittFormular.sokstad.value)!=-1)

tyckte den match var lite krånglig att använda, hade ju en massa parametrar att ställa in ju :(

jag provade också att använda .search, den funka bra men den kunde inte avgöra skillnaden på stora bokstäver och små, så den blev oandvändbar

nån som vet hur man använder IndexOf på arrayer?.

Medlem sedan juni 20004 308 inlägg
#6

Prästen skrev:

Hmm IndexOf verkar inte funka på Arrayer?
if(arr[y].stad.IndexOf(document.MittFormular.sokstad.value)!=-1)

Det indexOf talar om är var (första) förekomsten av söktermen i en sträng förekommer. Skall du göra det på en array får du loopa igenom alla elementen (antagligen strängar) i arrayen.

var arr=["Smurf plockar blåbär","Hallon är gott","Mmm... blåbärspaj","Rabarbersaft"]

stringHits=0;
for(var n=0;n<arr.length;n++){
	stringHits+=(arr[n].indexOf("blåbär")>-1)?1:0;
}
alert(stringHits+" av array-elementen innehöll 'blåbär'");

match (RegExp) är inte så krångligt. Du behöver ju inte använda alla parametrarna. "i" i exemplet ovan talar om att matchningen skall vara case insensitive. Alltså inte skilja på stora/små bokstäver. Plockar du bort det str.match(/[åäö]/) så kommer den inte att matcha ex "Ä".

399 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
126 ms — hämta statistik (db)
140 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)