[英]How to write regex to verify a comma delimited list of values
我正在使用SobiPro,一个joomla的目录系统,我有一个字段,其值只包含字母数字和连字符,所以这个文本字段中可能包含的示例如下:
玩具风筝,塑料轮,单向小玩意,金属线轴,3M线束
这个正则表达式将验证它们在字段保存之前在表单上输入的内容。
我想这个:(\\ w +)(,\\ s * \\ w +)*
但显然我不对,它没有考虑连字符..任何帮助! 谢谢!
试试这个:
^[-\w\s]+(?:,[-\w\s]*)*$
使用^
和$
可确保我们验证整个值,而不只是在其中找到匹配项。
第一个字符类[-\\w\\s]+
允许使用一个或多个字母数字,空格或短划线字符。 破折号应该在类括号中排在第一位。
第二组允许零次或多次重复以分隔逗号。 它包含在非捕获括号中,一个小的性能优化: (?: … )*
笔记:
A,B,,D
。 如果您不想允许此操作,请将倒数第二个*
更改为+
。 \\w
简写允许下划线。 为防止这种情况,请用A-Za-z0-9
替换它们。 试试这个:
[-\w\s]+(,[-\w\s]+)*
[-\\w\\s]
表示单词字符,空格或连字符。
单词字符通常包含_
,因此如果要防止这种情况,您可能希望将其替换为A-Za-z0-9
。
[-A-Za-z0-9\s]+(,[-A-Za-z0-9\s]+)*
使用字符类。
^([0-9A-Za-z -]+)(,[0-9A-Za-z -]+)*$
请注意\\w
包含下划线,这就是我将其扩展到字母数字范围的原因。
感谢@Jay指出丢失的锚点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.