我想测试一个用户字符串是否“确定为止”,因为它可能不是一个整体有效,但它是有效字符串的一个子集。
我有正则表达式^ [0-9] {4} - [0-9] {4} - [0-9] {4} - [0-9] $ 这样“1234-1234-5678-5678”有效
“1234-12”或甚至“1”与模式不匹配,但它是有效格式的有效子集,换句话说,输入到目前为止都是正确的。
有一种巧妙的方式可以做到这一点,而不是制作许多正则表达,周五。
答案 0 :(得分:2)
不确定我是否理解你的问题,但我认为你想要这样的事情:
^([0-9]{4}-){1,3}[0-9]{1,4}$
<强> Working demo 强>
这将匹配4位数的集合,并且最后一次设置为1到4位
您还可以使用以下方法缩短正则表达式:
^(\d{4}-){1,3}\d{1,4}$
答案 1 :(得分:0)
您可以使用一个最终正则表达式来验证您当前拥有的表单,并使用即时正则表达式来确保用户输入对每个子集都有效。
我的想法是([0-9] {1,4} - )+
答案 2 :(得分:0)
对于您的情况,这将检查为一种类型:
/^(\d(\d(\d(\d(-(\d(\d(\d(\d(-(\d(\d(\d(\d(-(\d)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?$/
答案 3 :(得分:0)
此正则表达式将在您键入时匹配键的键,尽管它有点麻烦。
^([0-9]{1,4}|[0-9]{4}-[0-9]{0,4}|[0-9]{4}-[0-9]{4}-[0-9]{0,4}|[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{0,4})$