2012-06-20 4 views
6

Gibt es eine Abkürzung für die folgende -Stenografie für mehr oder Ausdrücke in if-Anweisung

if(tld == "com" || tld == "net" || tld == "co" || tld == "org" || tld == "info" || tld == "biz") 
{ 
    //do something; 
} 
+2

@Hamish Es sagt Javascript, Ich habe die Tags entsprechend bearbeitet. – purtip31

+2

Werfen Sie einen Blick auf http://StackOverflow.com/A/10479102/298479 - Ich erklärte eine ganze Reihe von Methoden, um zu tun, was Sie wollen, und auch mit einem Leistungsvergleich verknüpft, falls das für Sie wichtig ist. – ThiefMaster

+0

@ purtip31 - Danke. – ShalomSam

Antwort

17

Sie ein Array

if(["","com","net","co","org","info","biz"].indexOf(tld) > -1) { 
    // do something 
} 

nutzen könnten oder wenn Sie jquery verwenden:

$.inArray(tld, ["com","net","co","org","info","biz"]) 

REF - Performance of OR operation (||) vs inArray()

+4

Sie haben '! = -1' vergessen, da '0' ein perfekt gültiges Ergebnis ('com') wäre. – ThiefMaster

+0

Vorsicht mit dem ersten IF-Code, als leerer String - '[" ",' - wird auch als * falsch *, * undefiniert * und * null * ausgewertet. Also, wenn ** tld ** einer von denen wäre, würde er zuerst IF passieren! Besser verwenden Sie 'if (["com", "net", "co", "org", "info", "biz"]. IndexOf (tld)> -1) ' –

12

Verwenden einer regexp:

if (/^(com|net|co|org|info|biz)$/i.test(tld)) { 
    // do something 
} 
+1

Wie geht das Handle wenn Tld ist "Kinderbett", die "Co" enthält? Ok, du hast den Anfang und das Ende hinzugefügt, als ich gepostet habe. – hackartist

+0

ist in Bezug auf die Leistung nicht regexp langsamer? – ShalomSam

+0

@ShalomSam Ich weiß nicht, das ist keine Mikro-Optimierung, die ich noch getestet habe. –

0

Sie über die Verwendung von switch-Anweisung dachten? so etwas wie dieses:

switch(tld) 
{ 
    case 'com': 
    case 'net': 
    case 'co': 
    ... 
    ... 
    // do something for all of them 
    break; 
    default: 
    // if you want you can have default process here 
    break; 
} 
+0

Ich habe darüber nachgedacht .. aber Sie würden idealerweise einen Schalter verwenden, wenn Sie verschiedene Ausführungen für verschiedene Fälle haben. Und mehr darüber suche ich eine Kurzschrift, meinen Code nicht länger zu machen. Danke für die Antwort obwohl sehr geschätzt! – ShalomSam