JS: regex for numbers and spaces?

Try

/^[\d ]*$/.test("238 238 45383")

console.log(/^[\d ]*$/.test("238 238 45383"));

Try

phone: function (val) {
    return /^(\s*[0-9]+\s*)+$/.test(val);
}

At least one number must be present for the above to succeed but please have a look at the regex example here


This is my suggested solution:

/^(?=.*\d)[\d ]+$/.test(val)

The (?=.*\d) asserts that there is at least one digit in the input. Otherwise, an input with only blank spaces can match.

Note that this doesn't put any constraint on the number of digits (only makes sure there are at least 1 digit), or where the space should appear in the input.