【发布时间】:2018-07-11 19:47:54
【问题描述】:
我正在研究一个允许字符“x”和 0-9 之间的任何数字的正则表达式。
以下是规则。
- 整个字符串的长度必须为 4
- 只接受 0-9 或 'x'
- 必须只有一个“x”
^(x|[0-9])(x|[0-9])(x|[0-9])(x|[0-9])$
我目前的正则表达式只支持规则 1 和 2,但它不会过滤掉那些有多个“x”的人
x000 //ok
xxxx //ok , but should be not ok
23xx //ok , but should be not ok
a90d //not ok
11x1 //ok
x213 //ok
由于正则表达式将用于 keyup 中的验证,因此该规则必须关注用户何时键入从一到四个 keyup。
更新规则
- 整个字符串的长度必须在 0 到 4 之间
- 只接受 0-9 或 'x'
- 不能有多个“x”
【问题讨论】:
-
你在使用 Ruby 吗?
-
@WiktorStribiżew 不,我只使用该页面进行测试,我正在编写一个用于在 javascript 中进行验证的页面,它们有什么不同吗?
-
您似乎在使用Robin Herbots
InputMask插件,对吧?它只支持每个字符的正则表达式。它不会对整个字符串应用掩码。 -
是的,我认为稍微改变规则会起作用,jsfiddle.net/cxb2np75/25,这是小提琴,你答案中的正则表达式确实能够控制 4 个字符。
标签: regex