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

时间:2011-05-29 01:07:18

标签: php regex

我创建了一个文本字段,用于添加以逗号分隔的标记。 (例如,php,jquery,js,ruby on rails)该字段就像stakoverflow上的字段,您可以为帖子添加标签。

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

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

如果输入包含我在正则表达式中添加的内容,我在提交表单时会收到验证错误。我已经测试了,当我放置像' " ; \

这样的符号时,它可以工作

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

好的,这里有一些问题:

  1. 没有名为“regex_match”的php函数
  2. 一个函数使用(),而不是[]
  3. 变量以$开头。 []的内部是索引。
  4. 您发布的行会导致PHP出现语法错误。既然你“测试了它”,这意味着这不是你使用的代码。请发布实际代码。

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

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