RegEx有效,直至不是

时间:2014-03-06 23:54:24

标签: regex

假设我想匹配以下javascript

\d{1,3}[a-zA-Z]{1,3}\d{1,3}[a-zA-Z]{1,3}

因为我正在进入像

这样的事情
1asd23a

311eed123ss

到目前为止一切顺利;但是在输入整个字符串之后我宁愿不说有效或无效,而是在输入字符串时,我想返回它是否仍然可能有效。

基本上是StartsWith但是正则表达式的任何部分。

1asd23

311eed12

仍然有效,因为该条目仍可修改为最终形式。 起始字符不会使正则表达式无效。

我希望我能正确解释这一点。

1 个答案:

答案 0 :(得分:1)

使正则表达式更加丑陋,但一种选择是使所有后面的元素都是可选的。这需要仔细完成,以确保后面的元素只有在所有早期元素都存在的情况下才能存在,因此最终会嵌套几个可选组。例如:

\d{1,3}([a-zA-Z]{1,3}(\d{1,3}([a-zA-Z]{1,3})?)?)?

当然,当输入最后一个字符串时,您将需要根据原始正则表达式对其进行验证。