user3183405
user3183405

Reputation: 59

Regular expression to match 0 or 1

I need a regexp to match either 0 or 1 entered into a field and no other characters at all, neither numeric nor alphas. How can I do it?

Upvotes: 5

Views: 14423

Answers (5)

Tom Pietrosanti
Tom Pietrosanti

Reputation: 4294

Single character, 0 or 1:

/^[01]$/

Multiple 0s or 1s (any order, no other characters):

/^[01]+$/g

Demo (Just add a + for the second example. The gm at the end in the demo is just for the example because there are multiple lines for test cases)

Upvotes: 11

Mike Brant
Mike Brant

Reputation: 71384

I would suggest simple string evaluation here since you have only two known acceptable values in the input string:

var input; // Your input string assume it is populated elsewhere
if (input === '0' || input === '1') {
   // Pass
}

Note the use of strict string comparison here to eliminate matches with truthy/falsey values.

If you are really hell-bent on a regex, try:

/^[01]$/

The key here is the beginning ^ and ending $ anchors.

Upvotes: 0

Ashish Kumar
Ashish Kumar

Reputation: 3039

Try this regex: /^(0|1)$/

Example:

/^(0|1)$/.test(0); // true
/^(0|1)$/.test(1); // true
/^(0|1)$/.test(2); // false
/^(0|1)$/.test(1001) // false

Upvotes: 0

Brad
Brad

Reputation: 6332

([01])  

http://rubular.com/r/TMu6vsx6Dn

If you only want the first occurrence, this will work as well.

(^[01])  

http://rubular.com/r/i3brvRutCg

Upvotes: 0

user692168
user692168

Reputation:

A simple 0|1 expression should work.

Upvotes: 0

Related Questions