正则表达式,用于数字,逗号和空格

时间:2019-06-25 12:20:45

标签: javascript regex

我需要一个RegEx,它允许以逗号开头的数字开头,以数字结尾(或数字后有空格)并且还允许数字和逗号之间包含空格的字符串。 例如。必须var str= '1 , 8,9, 88'才能参加,var str2="1 2, 5"才可以参加。我尝试使用var regEx= "^[0-9\,\s]+$",但是这样做的话,它接受以逗号结尾的字符串和具有两个不以逗号分隔的数字的字符串。有什么想法吗?

编辑:

可接受的字符串示例:

str1= "1,2,3,4"
str2= "1 , 2,3,9"
str3= "  8 , 44, 3  , 11"

要丢弃的字符串示例:

str4="1, 2,"
str5=", 1,2,"
str6="1,2 3,4"

1 个答案:

答案 0 :(得分:1)

您可以使用\s来解释逗号前后的空格(或者仅因为\s也匹配换行符而匹配一个空格)来匹配空白字符并使用重复模式来匹配逗号和1个以上的数字:

^\s*\d+(?:\s*,\s*\d+)*\s*$
  • ^字符串的开头
  • \s*\d+匹配0+个空格字符和1+个数字
  • (?:非捕获组
    • \s*,\s*\d+匹配0+个空格字符和逗号,0 +个空格字符和1+个数字
  • )*关闭非捕获组并重复0次以上
  • \s*$匹配1个以上的空白字符,并断言字符串的结尾。

Regex demo