2009-10-13 56 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”等)