2009-10-13 146 views

回答

1

可以使用陣列中的所有值:

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

或對象:

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

令人驚訝的是,第一條語句在IE7中給出了一個錯誤,但在所有其他瀏覽器中效果不錯 – Hitz 2009-10-13 17:01:32

+1

似乎Internet Explorer的版本7中尚未實現該方法。 – Gumbo 2009-10-13 17:11:24

+2

對象方案不起作用。考慮this.value ==='toString'。 您可以通過使用hasOwnProperty來修復它 – 2009-10-14 05:18:38

1

2最常用的方法是:

  1. 正則表達式

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

  2. 對象屬性查找

    THIS.VALUE在({ 'ABC':1 'XYZ':1, '焊接工藝評定':1})

注意,正則表達式爲基礎的解決方案(#1)肯定會高於普通的比較(您的版本)或財產的查找速度較慢(#2) 。

此外,請記住財產查找是不是很可靠,因爲它可能會針對與命名相同的任何Object.prototype.*性質任意鍵報告誤報(如「的toString」,「的valueOf」等)