如何创建仅匹配1或2的正则表达式

时间:2017-09-14 09:02:17

标签: javascript regex html5

我目前正在使用此正则表达式作为输入类型="数字"

的表达式
var regex = /[1|2]+$/; 

并且基于测试我显示用户错误但是如果用户输入则失败 21,12,11,22,-21,-12,11,1.1,2.1我只想接受1或2我已设置最大和最小属性但是对于移动用户可以手动输入i需要处理两种情况

3 个答案:

答案 0 :(得分:2)

正则表达式/^[12]$/可以。

答案 1 :(得分:2)

所以你想只匹配12? 嗯,这正是|运算符的作用:

1|2

如果你想要这个词:

\b(1|2)\b

或字符串/行:

^(1|2)$

答案 2 :(得分:1)

这个怎么样?

const
  regex = /^[12]$/,
  tests = ['1', '2', '11', '21', '-1', '1|', '|'];
  
tests.forEach(test => {
  console.log(`Is '${test}' valid: ${regex.test(test)}`);
});