我正在尝试构建类似于Google Play的信用卡添加的组件:
如果用户开始输入信用卡号码,并且只有信用卡图片保持可见,则这些卡片与信用卡号码模式的一部分相符。
例如:
查看万事达卡正则表达式:^ 5 [1-5] [0-9] {14} $
如果用户键入" 5"," 53"," 531",则应显示主卡的图像。
我想可以用Pattern和Matcher类完成,但是怎么做?
使用Series.query
方法并不好,因为它试图匹配所有模式。
提前致谢!
答案 0 :(得分:0)
如果您想要实时验证模式,可以使用
^5([1-5][0-9]{0,14})?$
请参阅regex demo。
请注意,您无法将其用于最终字符串验证,您必须使用当前的正则表达式。
关于实时输入验证的正则表达式的主要之处在于它仅在前一个字符匹配时允许下一个字符,并且嵌套可选组可以实现。由于您只有3个部分:1)第一个强制性5
,然后是1
到5
数字,然后是0到14个数字,您可以只使用一个可选组{{ 1}}模式和确保您允许零或最多14个其他数字。
详细:
[1-5][0-9]{0,14}
- 字符串开头^
- 强制性5
5
- 可选序列(1或0次出现):
([1-5][0-9]{0,14})?
- 从[1-5]
到1
5
- 任意零到十四位[0-9]{0,14}
- 字符串结束。答案 1 :(得分:0)
使用您的模式激活按钮
,这用于图像
^5[1-5][0-9]{0, 14}$