正则表达式表示逗号分隔的文本


Regex for comma separated text

我创建了一个文本字段,用于添加以逗号分隔的标签。(例如.php:jquery,js,Ruby on Rails(该字段类似于 stakoverflow 上的字段,您可以在其中为帖子添加标签。

我想验证输入以确保正确输入标签。这意味着用户只能输入字母、数字、空格和逗号。我做了以下regex_match但我不完全确定它是否正确。

regex_match[/^[a-z, ]+$/i]

如果输入包含除我在正则表达式中添加的内容之外的任何内容,则在提交表单时会出现验证错误。我已经测试过了,当我放置像 ' " ; ' 这样的符号时它可以工作

这是我的第一个正则表达式,我做得对吗?语言是PHP。

为什么不使用 str_getcsv 函数,它会将 CSV 字符串解析为数组,然后您可以使用 ctype_alnum 函数单独验证每个标签并丢弃格式错误的标签;)

如果您确实需要,这是正确的正则表达式模式:-

'/^[a-z0-9]+(, [a-z0-9]+)*$/i'

好的,这里有几个问题:

  1. 没有名为"regex_match"的php函数
  2. 函数使用 ((,而不是 []
  3. 变量以 $ 开头。[] 的内部是一个索引。

您发布的行将导致 PHP 中的语法错误。既然你"测试了它",这意味着这不是你真正使用的代码。请发布实际代码。

关于正则表达式,这是一个很好的第一次尝试,但你忘记了数字:

/^[a-z,0-9 ]+$/i