2013-02-10 45 views
-4

我怎麼能允許非alphabatic人物一樣,「:;」使用正則表達式在我的CakePHP項目 我的代碼:如何讓非alphabatic字符驗證

'alpha' => array(
    'rule' => '/^[a-z\s\-\']+$/i', 
    'message' => 'Please limit to alphabetical and non-alphabetical characters.' 
    ); 

感謝

+0

您是否嘗試過,包括他們在您的字符類(即方括號您的規則之間)? – phatfingers 2013-02-10 05:38:46

+2

您已經在該正則表達式中匹配了非單詞字符。與'az'一起,你還允許空格,短劃線字符'-'和單引號字符'''...你的消息也沒有太大意義''限制字母和非字母「'.. – Lix 2013-02-10 05:42:16

回答

3

您的規則已允許使用某些非字母字符,它允許使用空格字符(空格字符),連字符(破折號字符)和撇號(單引號字符)。您只需添加到列表中:

'alpha' => array(
    'rule' => '/^[a-z\s\-\'\.,:;]+$/i', 
    'message' => 'Please limit to alphabetical and non-alphabetical characters.' 
); 

不要忘記帶有特殊含義的字符,如句點字符.

請注意,這條規則很放鬆。它將使各種非正規輸入,比如 -

  • ;;;;;;;;
  • --;;--::
  • ''. .''
+0

如何讓所有的空間字符? @Lix – Shawon 2013-02-10 13:54:48

+0

@sha - \ s應該覆蓋所有空白字符... – Lix 2013-02-10 14:20:49

+0

像<>?{} []!@#$%^&* @Lix – Shawon 2013-02-10 14:53:32