Regex, detect no spaces in the string
Asked Answered
R

1

4

This is my current regex check:

const validPassword = (password) => password.match(/^(?=.*\d)(?=.\S)(?=.*[a-zA-Z]).{6,}$/);

I have a check for at least 1 letter and 1 number and at least 6 characters long. However I also want to make sure that there are no spaces anywhere in the string.

So far I'm able to enter in 6 character strings with spaces included :(enter image description here

Found this answer here, but for some reason in my code it's passing.

What is the regular expression for matching that contains no white space in between text?

Rhinelandpalatinate answered 3/5, 2017 at 15:16 Comment(0)
E
8

It seems you need

/^(?=.*\d)(?=.*[a-zA-Z])\S{6,}$/

Details

  • ^ - start of string
  • (?=.*\d) - 1 digit (at least)
  • (?=.*[a-zA-Z]) - at least 1 letter
  • \S{6,} - 6 or more non-whitespace chars
  • $ - end of string anchor

With a principle of contrast in mind, you may revamp the pattern into

/^(?=\D*\d)(?=[^a-zA-Z]*[a-zA-Z])\S{6,}$/
Equanimous answered 3/5, 2017 at 15:20 Comment(2)
That's a great explanation.Chemmy
Thanks! Geez Regex is always over my head, hardly run into a case where I have to use it.Rhinelandpalatinate

© 2022 - 2024 — McMap. All rights reserved.