Regular expression to allow comma and space delimited number list

落爺英雄遲暮 提交于 2019-12-04 03:28:38

问题


I want to write a regular expression using javascript or jquery to allow comma delimited list of numbers OR space delimited numbers OR comma followed by a space delimited numbers OR a combination of any of the above ex anything that is not a digit, space or comma must be rejected

SHOULD PASS 111,222,333 111 222 333 111, 222, 333 111,222,333 444 555 666, 111, 222, 333,

should NOT pass: 111,222,3a 3a 111 222 3a etc etc

I tried the code below they seemed to work however when I typed 3a as a number, it PASSED!!! How? I cannot understand how my code allowed that letter to pass.

I want to reject anything that is not a space, comma or digit

or is there a better way to do this without regular expressions? I looked in google and did not find any answer.

Thank you in advance for any help.

var isNumeric = /[\d]+([\s]?[,]?[\d])*/.test(userInput);
var isNumeric = /^[\d\s,]*/.test(userInput);    
var isNumeric = /^[\d]*[\s,]*/.test(userInput); 
var isNumeric = /^[\d\s,]*/.test(userInput);    
var isNumeric = /\d+\s*,*/.test(userInput); 

if (isNumeric == false) {
    alert(isNumeric);
  return false;
}
else
      alert('is Numeric!!!');

回答1:


Would the regular expression ^[\d,\s]+$ not do the trick?




回答2:


Try this Regex... Click to view your demo

^[0-9 _ ,]*$



回答3:


Guess ^(\d+[, ]+)*$ should do it.

Explanation: A group containing one or more digits followed by at least one space or comma. Group may be repeated any number of times.

It's doesn't handle everything though, like failing when there are commas without a number between (if that's what you want).



来源:https://stackoverflow.com/questions/17472580/regular-expression-to-allow-comma-and-space-delimited-number-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!