Javascript 用于数字、逗号和空格的正则表达式
我需要一个正则表达式,它允许字符串以逗号分隔的数字开头,以数字结尾(或数字后面有空格),并且允许数字和逗号之间有空格。 例如,Javascript 用于数字、逗号和空格的正则表达式,javascript,regex,Javascript,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 , 1
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"
您可以使用
\s
说明逗号前后的空格(或者仅匹配空格,因为\s
也匹配换行符),以匹配空白字符,并使用重复模式匹配逗号和1+数字:
^\s*\d+(?:\s*,\s*\d+)*\s*$
字符串的开头^
匹配0+空格字符和1+数字\s*\d+
非捕获组(?:
匹配0+空格字符,以及逗号、0+空格字符和1+数字\s*,\s*\d+
关闭非捕获组并重复0多次)*
匹配1+空格字符并断言字符串结尾\s*$
您能再举一些有效和无效输入的例子吗?您是否只接受逗号附近的多个空格?我认为您在示例Question edited;)中犯了一个错误如果str=“1”,接受还是放弃?str=“1”被接受@V-SHYOne一个大小写丢失,带有尾随空格/s,例如
1
它部分起作用,因为如果字符串在最后一个数字后以空格结尾,它就不起作用了是的@RehanHaiderIf我在线测试正则表达式,但如果我在代码验证器中写入.pattern(“^\s*\d+(?:\s*,\s*\d+*\s*$”),它就不起作用了。我错过了什么?@GigiProve你有没有试着双倍避开反斜杠<代码>^\\s*\d+(?:\\s*,\\s*\\d+*\\s*$