2011-05-29 147 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

相關問題