2011-05-29 150 views
0

我创建了一个用于添加标签的文本字段,用逗号分隔。 (例如php,jquery,js,ruby on rails)这个字段就像stakoverflow上的一个标签,用于为帖子添加标签。用逗号分隔的文本的正则表达式

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

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

如果输入包含任何内容,但是我在正则表达式中添加的内容,则在提交表单时会出现验证错误。我已经测试过,当我把符号,如' " ; \

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

+0

不会是正则表达式不匹配任何包含逗号? – marnir 2011-05-29 01:09:18

+3

你有没有测试过它?提出测试。他们成功还是失败?这听起来就像你希望我们为你测试一样。 – 2011-05-29 01:09:47

+0

是的,我测试过了,它似乎工作,但它是我的第一个正则表达式。我只想确认我是否正确。 @Tim,如果存在数字,字母,空格和逗号以外的任何内容,则会出现验证错误。 – CyberJunkie 2011-05-29 01:13:57

回答

1

OK,这里还有几个问题:

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

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

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

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

对不起,我在codeigniter中使用regex_match [],在[]中添加正则表达式模式。感谢您的号码! – CyberJunkie 2011-05-29 01:36:37

3

为什么不使用str_getcsv功能,它会解析CSV字符串为数组,然后你可以单独使用ctype_alnum功能验证每个标签,并丢弃畸形者;)

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

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

谢谢@mu太短:) – 2011-05-29 01:25:14

+1

谢谢!我不知道有一个csv的功能! – CyberJunkie 2011-05-29 01:35:22

相关问题