Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

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

1 Answer

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...