Home > Mobile >  Need help figuring out how to write this Regex properly
Need help figuring out how to write this Regex properly

Time:03-22

I am trying to make a regex test that returns true for the following conditions:

  • Can only have letters A-F (case insensitive)
  • First character must be '#'
  • Can have numbers 0-9
  • Does not have punctuation

The order does not matter except that string[0] should be '#'.

So far I have: /^#[A-F0-9^!G-Z]/i but for some reason, it returns strings that have letters after F (like G or J) as true.

CodePudding user response:

You can use

^#[0-9A-Fa-f]*$

Details:

  • ^ - start of string
  • # - a hash symbol
  • [0-9A-Fa-f]* - zero or more hex chars (note it can be written as [[:xdigit:]]* in some regex flavors, but not in ECMAScript flavor used in JavaScript)
  • $ - end of string.
  • Related