我想测试一个用户字符串是否“迄今为止”,因为它可能不是一个有效的整体,但它是一个有效的子集。如何获得正则表达式匹配的有效部分
我有一个正则表达式,例如^ [0-9] {4} - [0-9] {4} - [0-9] {4} - [0-9] $ 这样“1234-1234 -5678-5678“有效
”1234-12“或甚至”1“不匹配模式,但它是一个有效格式的有效子集,换句话说,输入到目前为止是确定的。
有没有一个很好的方法做到这一点,而没有制造许多正则表达式,它的星期五。
我想测试一个用户字符串是否“迄今为止”,因为它可能不是一个有效的整体,但它是一个有效的子集。如何获得正则表达式匹配的有效部分
我有一个正则表达式,例如^ [0-9] {4} - [0-9] {4} - [0-9] {4} - [0-9] $ 这样“1234-1234 -5678-5678“有效
”1234-12“或甚至”1“不匹配模式,但它是一个有效格式的有效子集,换句话说,输入到目前为止是确定的。
有没有一个很好的方法做到这一点,而没有制造许多正则表达式,它的星期五。
不知道如果我深知你的问题,但我认为你想有这样的事情:
^([0-9]{4}-){1,3}[0-9]{1,4}$
这将匹配组的4位,并且可以具有从1到4位
您也可以缩短与您正则表达式:
^(\d{4}-){1,3}\d{1,4}$
您可能可以使用一个最终的正则表达式来验证您当前拥有的表单,并且可以使用用户输入的动态正则表达式对每个子集都有效。
我的想法是有([0-9] {1,4} - )+
,但这将使“1-2”有效,它不是 – Arthur
对于你的情况,这将检查作为一个类型:
/^(\d(\d(\d(\d(-(\d(\d(\d(\d(-(\d(\d(\d(\d(-(\d)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?)?$/
此正则表达式,你键入将匹配键键,虽然它有点麻烦。
^([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})$
所以1234年至1212年是否有效? – funcoding
考虑例如''AAAAAc'.match(/ A + B | C /)'。根据你的说法,“AAAAA”是否为“有效子集”? – georg