Javascript regex - no white space at beginning + allow space in the middle

I would like to have a regex which matches the string with NO whitespace(s) at the beginning. But the string containing whitespace(s) in the middle CAN match. So far i have tried below


Regular expression visualization

Debuggex Demo

Above is not allowing whitespace(s) at the beginning, but also not allowing in the middle/end of the string. Please help me.



In your 2nd character class, \\s will match \ and s, and not \s. Thus it doesn't matches a whitespace. You should use just \s there. Also, move the hyphen towards the end, else it will create unintentional range in character class:


You need to use this regex:

  • Use start anchor ^
  • No need to double escape \s
  • Also important is to use hyphen as the first OR last character in the character class.
  • \w is same as [a-zA-Z0-9_]

use \S at the beginning



  • try this instead it will not allow a user to enter character at first place
  • ^ matches position just before the first character of the string
  • . matches a single character. Does not matter what character it is, except newline
  • \s is space

try this should work


This RegEx will allow neither white-space at the beginning nor at the end of. Your string/word and allows all the special characters.


This Regex also works Fine


If you plan to match a string of any length (even an empty string) that matches your pattern and does not start with a whitespace, use (?!\s) right after ^:


Or, bearing in mind that [A-Za-z0-9_] in JS regex is equal to \w:


The (?!\s) is a negative lookahead that matches a location in string that is not immediately followed with a whitespace (matched with the \s pattern).

If you want to add more "forbidden" chars at the string start (it looks like you also disallow -) keep using the [\s-] character class in the lookahead:


To match at least 1 character, replace * with +:


See the regex demo. JS demo:

console.log(/^(?![\s-])[\w\s-]+$/.test("abc   def 123 ___ -loc-   "));
console.log(/^(?![\s-])[\w\s-]+$/.test("  abc   def 123 ___ -loc-   "));


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.