我有一个带有Parsley JS模式验证的HTML文本输入,我希望在99d 99m 99h的模式中验证一小时的分钟字符串。我正在使用正则表达式来处理整个字符串(所有三个段都存在(dmh))但是我还希望它还验证三个段中是否只有一个或两个(00d 00h或00h 00m)或00h或00m或00d)。
这是我的模式:
(?:(\d+d)\s)?(?:(\d+h)\s)?(?:(\d+m))
有没有办法对这些进行分组,以便其他五种模式也匹配而不需要编写更多的模式组?
(?:(\d+d)\s)?(?:(\d+h)\s)?(?:(\d+m))?:(?:(\d+d)\s)?(?:(\d+h)\s))?:(?:(\d+h)\s)?(?:(\d+m)?(\d+d)\s)?(\d+h)\s)?(\d+m)\s)
答案 0 :(得分:0)
我可能不是百分之百满足你的需求,但是你不能在这里做一些版本的东西,添加一些空白模式或什么?
^(\d{2}[dhm]){1,3}$
根据评论进行修改 这个版本怎么样?
^(\d{2}d\s\d{2}h\s\d{2}m)|(\d{2}[dh]\s\d{2}m)|(\d{2}d\s\d{2}[hm])|(\d{2}[dhm])$