2013-03-10 63 views
0

我想知道是否有人能夠幫助我。允許撇號匹配驗證

我使用以下preg匹配表達式作爲我的字段驗證的一部分。

(!preg_match('/^$|^[A-Za-z0-9 .,;-]{5,60}$/', $address4)) 

我遇到的問題是,我無法得到這個工作的時候包括一個單引號,因爲我想允許的字符的一部分。

我讀了一些教程,並嘗試沒有成功以下,所以我清楚地做錯事:

(!preg_match('/^$|^[A-Za-z0-9 .,;-\']{5,60}$/', $address4)),

(!preg_match('/^$|^[A-Za-z0-9 .,;-\'\]{5,60}$/', $address4)) 

我只是想知道是否有人能可能請看看這個,讓我知道我出了什麼問題。

回答

1

正則表達式的字符類中的負號必須總是在末尾。否則,它將被用於一個字符範圍。因此,請嘗試切換撇號和減號:

preg_match('/^$|^[A-Za-z0-9 .,;\'-]{5,60}$/', $address4) 
+0

嗨@nwellnhof,非常感謝您花時間回覆我的文章和解決方案。我已經嘗試了您發送的代碼,不幸的是這不起作用。非常感謝和親切的問候 – IRHM 2013-03-10 15:35:11

+0

嘗試用引號「(而不是單引號」)來包裝整個模式,然後你可以使用'未轉義的,這有什麼區別嗎?它真的不應該,但是誰知道。沒有'或'?當然,你小心這是一個真正的ASCII單引號,而不是一些MS Smart Quotes浮渣? – 2014-01-07 15:46:48