正则表达式匹配0或1:

3
我需要一个正则表达式,可以匹配输入字段中的0或1,而不是其他任何字符,既不是数字也不是字母。该如何实现?

3
if (x===0||x===1)有什么问题? - elclanrs
我同意@elclanrs的观点,这并不像你需要正则表达式的东西,除非它是HTML5验证或类似的东西。 - adeneo
5
如果您在使用 ==0 进行比较时,我相信您也会匹配 null 和其他假值。 - Tom Pietrosanti
2
由于它明显来自输入字段,null不会成为问题,并且它始终是字符串类型,所以我真的看不出有什么问题。 - adeneo
1
那么输入到底是什么-只有“0”和“1”吗?还是允许“1001”?空字符串(无输入)又怎么办?为什么要使用正则表达式? - user2864740
显示剩余7条评论
5个回答

9

单个字符,0或1:

/^[01]$/

多个0或1(任意顺序,无其他字符):

/^[01]+$/g

演示(第二个示例只需添加一个+。 示例中的gm只是用于示例,因为有多行测试用例)


不知道?我没有做过,但可能是因为你需要一个登录账户才能访问链接? - Brad
这是一个不错的可能性。因为我已经登录,所以我没有注意到。我将看看我需要做些什么来获取公共分享链接。 - Tom Pietrosanti
嗯...现在看起来不错...我点了个赞,这样你就不会因为一个好答案而变成负数了 :) - Brad
3
简洁的描述可能会误导。虽然第一个验证输入是否有1个字符,并且它是0或1,但第二个仅测试输入中是否存在0和1(输入可能包含其他内容)。 - nhahtdh
我还会更新我的演示,包括一些带有其他字符的测试用例。 - Tom Pietrosanti
显示剩余2条评论

0
我建议在这里使用简单的字符串评估,因为您的输入字符串中只有两个已知的可接受值:
var input; // Your input string assume it is populated elsewhere
if (input === '0' || input === '1') {
   // Pass
}

请注意在此处使用严格的字符串比较来排除与真值/假值匹配的情况。
如果你真的非常执着于正则表达式,尝试一下这个:
/^[01]$/

关键在于起始锚点^和结束锚点$

0
一个简单的0|1表达式应该可以运行。

0

据我理解这个问题,他想匹配任何一个或零?这就是它的作用吗? - Brad

0
尝试使用这个正则表达式:/^(0|1)$/

示例:

/^(0|1)$/.test(0); // true
/^(0|1)$/.test(1); // true
/^(0|1)$/.test(2); // false
/^(0|1)$/.test(1001) // false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接