2009-10-13 10 views

Répondre

1

Vous pouvez utiliser un tableau:

return ["abc","xyz","pqr"].indexOf(this.value) == -1; 

Ou un objet:

return !({"abc":1,"xyz":1,"pqr":1}).hasOwnProperty(this.value); 
+0

étonnamment la première instruction donne une erreur dans IE7 mais fonctionne bien dans tous les autres navigateurs – Hitz

+1

Il semble qu'Internet Explorer a cette méthode pas encore implémentée dans la version 7. – Gumbo

+2

Le schéma d'objet ne fonctionne pas. Considérez this.value === 'toString'. Vous pouvez le réparer en utilisant hasOwnProperty à la place –

1

2 les manières les plus courantes sont:

  1. regex

    /^(abc|xyz|pqr)$/.test(this.value)

  2. propriété d'objet recherche

    this.value dans ({ 'abc': 1 , 'xyz': 1, 'pqr': 1})

Notez que solution regex (# 1) sera certainement plus lente que la comparaison simple (votre version) ou recherche de propriété (# 2) .

Aussi, rappelez-vous que recherche de la propriété est pas très fiable, car il pourrait rapporter de faux positifs pour une clé qui est le même nom que l'une des Object.prototype.* propriétés (par exemple « toString », « valueOf », etc.)

Questions connexes