If i want to accept only numbers then i will use this regex
^[0-9]*$
but the problem here is that the numbers like
+1 00
are not catched and my regex will show that it is invalid
The user needs to type only numbers but only one space in between is allowed and + sign at the beggining should be optional.
So acceptable is:
+1 11 1 1 11 or 1 11 1 1 11
Unacceptable is:
+1 11 1 1 11 or 1 11 1 1 11
please help
Advertisement
Answer
You may try using this regex pattern:
^+?d+(?:[ ]?d+)*$
Sample script:
console.log(/^+?d+(?:[ ]?d+)*$/.test('+1 11 1 1 11')); // true
console.log(/^+?d+(?:[ ]?d+)*$/.test('1 11 1 1 11')); // true
console.log(/^+?d+(?:[ ]?d+)*$/.test('+1 11 1 1 11')); // false
console.log(/^+?d+(?:[ ]?d+)*$/.test('1 11 1 1 11')); // falseThe regex pattern used here says to:
^ from the start of the string
+? match an optional leading +
d+ then match one or more digits
(?:[ ]?d+)* followed by an optional single space and more digits,
zero or more times
$ end of the string