Regular expression to allow only one space between words

14,851

Solution 1

Assuming there must be either one or two 'words' (i.e. sequences of non-space characters)

"\s*\S+(\s\S+)?\s*"

Change \S to [A-Za-z] if you want to allow only letters.

Solution 2

Pretty straightforward:

/^ *(\w+ ?)+ *$/

Fiddle: http://refiddle.com/gls

Share:
14,851
Test_User
Author by

Test_User

Updated on July 18, 2022

Comments

  • Test_User
    Test_User almost 2 years

    I've a textbox in an ASP.NET application, for which I need to use a regular expression to validate the user input string. Requirements for regex are -

    1. It should allow only one space between words. That is, total number of spaces between words or characters should only be one.
    2. It should ignore leading and trailing spaces.

    Matches:

    • Test
    • Test abc

    Non Matches:

    • Test abc def
    • Test abc --> I wanted to include multiple spaces between the 2 words. However the editor ignores these extra spaces while posting a question.