Regex number and hyphen

前端 未结 3 1754
傲寒
傲寒 2021-01-18 20:57

I\'m trying to match number with regular expression like:

34-7878-3523-4233

with this:

^[0-9][0-9-]*-[0-9-]*[0-9]$
<         


        
相关标签:
3条回答
  • 2021-01-18 21:26

    Your regex:

    See it in action: Regexr.com

    ^[0-9]+(-[0-9]+)+$
    

    Matches:

    1-2
    1-2-3
    

    Doesn't match:

    1
    1-
    1-2-
    1-2----3
    1---3
    
    0 讨论(0)
  • 2021-01-18 21:28

    Use the normal*(special normal*)* pattern:

    ^[0-9]+(-[0-9]+)+$
    

    where normal is [0-9] and special is -

    0 讨论(0)
  • 2021-01-18 21:43

    That's because, you have included the hyphen in the allowed characters in your character class. You should have it outside.

    You can try something like this: -

    ^([0-9]+-)*[0-9]+$
    

    Now this will match 0 or more repetition of some digits followed by a hyphen. Then one or more digits at the end.

    0 讨论(0)
提交回复
热议问题