JonH
JonH

Reputation: 33143

Allow space in regex when validating file

I've got a text box where I wanted to ensure some goods and bads out of it.

For instance good could include:

GoodString
GoodString88
99GoodString

Some bad things I did not want to include was:

Good*String
Good&String

But one thing I wanted to allow would be to allow spaces between words so this should of been good:

Good String

However my regex/js is stating this is NOT a good string - I want to allow it. I'm using the test routine for this and I'm as dumb as you can get with regexes. I don't know why I can never understand these things...

In any event my validation is as follows:

 var rx = /^[\w.-]+$/;
 if (!rx.test($("#MainContent_txtNewDocumentTitle").val())) {
    //code for bad string
 }else{
    //code for good string
 }

What can I do to this:

var rx = /^[\w.-]+$/;

Such that spaces are allowed?

Upvotes: 0

Views: 62

Answers (1)

anubhava
anubhava

Reputation: 784938

You can use this regex instead to allow space only in middle (not at start/end):

var rx = /^[\w.-]+(?:[ \t]+[\w.-]+)*$/gm;

RegEx Demo

RegEx Breakup:

^             # line start
[\w.-]+       # match 1 or more of a word character or DOT or hyphen
(?:           # start a non-capturing group
   [ \t]+     # match one or more space or tab
   [\w.-]+    # match 1 or more of a word character or DOT or hyphen
)*            # close the non-capturing group. * will allow 0 or more matches of group
$             # line end
/gm           # g for global and m for multiline matches

RegEx Reference

Upvotes: 4

Related Questions