嘿 我无法弄清楚如何为我的网站编写正则表达式,我想让用户输入以逗号或逗号和空格分隔的项目(标签)列表,例如“apple,pie,applepie” 。是否有可能拥有这样的正则表达式? 谢谢!
编辑: 我想要一个javascript的正则表达式,以便在用户提交表单之前检查输入。
答案 0 :(得分:28)
您正在寻找的东西看似简单:
[^,]+
这将为您提供每个逗号分隔的标记,并将排除空标记(如果用户输入“a,b”,您将只获得'a'和'b'),但如果他们输入“它将会中断” a,,b“。
如果你想正确地从任何一边剥离空格(并且只排除空白元素),那么它会变得更复杂一些:
[^,\s][^\,]*[^,\s]*
然而,正如一些评论中提到的那样,为什么你需要一个正则表达式,其中一个简单的拆分和修剪可以解决这个问题?
答案 1 :(得分:4)
假设列表中的单词可能是从a到z的字母,并且您允许但不要求逗号分隔符之后的空格,则您的reg exp将是 [A-Z] +(\ S * [A-Z] +)*
这匹配“ab”或“ab,de”,但不是“ab,dc”
答案 2 :(得分:2)
这可能有效:
([^,]*)(, ?([^,]*))*
答案 3 :(得分:1)
这是一个更简单的解决方案:
console.log("test, , test".match(/[^,(?! )]+/g));

它不会破坏空属性并在属性之前和之后去除空格。
答案 4 :(得分:1)
这个帖子差不多7岁了,5个月前还活跃了,但是我希望得到与OP相同的结果,在阅读完这个帖子后,遇到了一个似乎运作良好的漂亮解决方案
.match(/[^,\s?]+/g)
这是一张图片,上面有一些示例代码,说明我如何使用它以及它是如何工作的
关于正则表达式......我想更准确的说法就是说"定位任何不是逗号的东西,然后是任意(可选)数量的空格" ?
答案 5 :(得分:1)
我经常使用昏迷分隔模式工作,对我来说,这是可行的:
((^|[,])pattern)+
其中“模式”是单元素正则表达式
答案 6 :(得分:0)
([^,]*)
查找给定字符串中的逗号,然后将它们分开。关于空白?你不能用逗号吗?删除空格?
答案 7 :(得分:0)
我需要对逗号分隔的输入字母字符进行严格验证,没有空格。如果有人需要,我最终会使用这个:
/^[a-z]+(,[a-z]+)*$/
答案 8 :(得分:-7)
这样的事情应该有效:((apple|pie|applepie),\s?)*