重用JS正则表达式中的捕获组模式 [英] Reuse capturing group pattern in JS regex
本文介绍了重用JS正则表达式中的捕获组模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想测试一个字符串是8位数字还是相同数字可以分为4个部分,每个部分用-
分隔.
I want to test whether a string is 8 digits or the same number can be divided into 4 parts separated by a -
.
我有一个能正常工作的正则表达式:
I have a regex that does work:
/^\d{2}([-]?)(\d{2})\1\d{2}\1\d{2}$/
我可以证明:
/^\d{2}([-]?)(\d{2})\1\d{2}\1\d{2}$/.test('12345678'); // true
/^\d{2}([-]?)(\d{2})\1\d{2}\1\d{2}$/.test('12-34-56-78'); // true
/^\d{2}([-]?)(\d{2})\1\d{2}\1\d{2}$/.test('12-45-7810'); // false
/^\d{2}([-]?)(\d{2})\1\d{2}\1\d{2}$/.text('-12-45-78-10'); //false
我本来想从 \ d {2}
创建一个组,但是我尝试了以下操作:
I would have liked to have created a group from \d{2}
but I tried this:
/^(\ d {2})([-]?)\ 1 \ 2 \ 1 \ 2 \ 1 $/
但是它什么都不匹配.
推荐答案
您甚至可以写得更短: ^ \ d \ d(-\ d \ d){3} $ | ^ \ d {8} $
You can write even shorter: ^\d\d(-\d\d){3}$|^\d{8}$
这篇关于重用JS正则表达式中的捕获组模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文