Alphanumeric, dash and underscore but no spaces regular expression check JavaScript
However, the code below allows spaces.
No, it doesn't. However, it will only match on input with a length of 1. For inputs with a length greater than or equal to 1, you need a +
following the character class:
var regexp = /^[a-zA-Z0-9-_]+$/;
var check = "checkme";
if (check.search(regexp) === -1)
{ alert('invalid'); }
else
{ alert('valid'); }
Note that neither the -
(in this instance) nor the _
need escaping.
You shouldn't use String.match but RegExp.prototype.test (i.e. /abc/.test("abcd")
) instead of String.search() if you're only interested in a boolean value. You also need to repeat your character class as explained in the answer by Andy E:
var regexp = /^[a-zA-Z0-9-_]+$/;
This is the most concise syntax I could find for a regex expression to be used for this check:
const regex = /^[\w-]+$/;
Got stupid error. So post here, if anyone find it useful
-
[-\._]
- means hyphen, dot and underscore -
[\.-_]
- means all signs in range from dot to underscore
Try this
"[A-Za-z0-9_-]+"
Should allow underscores and hyphens