Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
504 views
in Technique[技术] by (71.8m points)

javascript - Reuse capturing group pattern in JS regex

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})1d{2}1d{2}$/

And I can prove:

/^d{2}([-]?)(d{2})1d{2}1d{2}$/.test('12345678'); // true
/^d{2}([-]?)(d{2})1d{2}1d{2}$/.test('12-34-56-78');  // true
/^d{2}([-]?)(d{2})1d{2}1d{2}$/.test('12-45-7810'); // false
/^d{2}([-]?)(d{2})1d{2}1d{2}$/.text('-12-45-78-10'); //false

I would have liked to have created a group from d{2} but I tried this:

/^(d{2})([-]?)12121$/

But it does not match anything.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can write even shorter: ^dd(-dd){3}$|^d{8}$


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...