在Javascript中,数字等于这个或这个

在Javascript中,数字等于这个或这个,javascript,numbers,match,Javascript,Numbers,Match,我正在寻找一种更优雅的方式来匹配或使用JavaScript 使用字符串,我们可以执行以下操作: "test".match(/test|otherstring/) 但是number对象没有方法匹配。我们当然可以添加这个,但我的应用程序将被放入一个有数百个独立应用程序的大型国际网站,因此这将是一个危险的举动 在这一点上,我有两个选择: String(myNumber).match(/test|numbers/) 或: 但在我看来,这两种解决方案都不是很优雅。我希望能够做到: number ===

我正在寻找一种更优雅的方式来匹配或使用JavaScript

使用字符串,我们可以执行以下操作:

"test".match(/test|otherstring/)
但是number对象没有方法匹配。我们当然可以添加这个,但我的应用程序将被放入一个有数百个独立应用程序的大型国际网站,因此这将是一个危险的举动

在这一点上,我有两个选择:

String(myNumber).match(/test|numbers/)
或:

但在我看来,这两种解决方案都不是很优雅。我希望能够做到:

number === test1||test2;
但如果number==test1,则结果为true;否则返回test2。或使用括号:

number === (test1||test2)
但这只会比较第一个测试并返回该测试的结果

在这里,我们可以通过JavaScript wierdness获得更多的乐趣。如果有人能告诉我为什么会出现以下情况,则可获得额外积分:

13===(13|13)
# true
13===(12|13)
# true
13===(1|13)
# true
13===(133|13)
# false
13===(13|133)
# false
对于这个问题

13===(13|13)
# true
13===(12|13)
# true
13===(1|13)
# true
13===(133|13)
# false
13===(13|133)
# false
一根管子是有点明智或不明智的

范例

alert(6 | 10); // should show 14
8 4 2 1
-------
0 1 1 0 = 6  (4 + 2)
1 0 1 0 = 10 (8 + 2)
=======
1 1 1 0 = 14 (8 + 4 + 2)

如果num==1 | | num==2在你看来不优雅,那么你需要改进你的品味说真的,这就是自然的定义,就像婴儿的微笑一样。怎么可能不优雅呢?如果你不得不与很多值进行比较,我可以理解你会有第二种想法,但是对于两个值,[test1,test2]怎么样?somefunctionx{return num==x}?任何人都可以告诉我为什么会出现以下序列,你知道你在那里做逐位操作吗?12 | 13等于13。与1 | 13相同。可能重复@Jon一旦您需要对多个值进行多个测试,就很难读取。113 | 13是141,而不是113。另外,例如,2 | 1导致3,而不是2,因此您的解释是不正确的。看一下。你修复了你的帖子,但是你还没有回答OP的实际问题。
alert(6 | 10); // should show 14
8 4 2 1
-------
0 1 1 0 = 6  (4 + 2)
1 0 1 0 = 10 (8 + 2)
=======
1 1 1 0 = 14 (8 + 4 + 2)