2017-03-11 15 views
1

ユーザー名の検証でのみ、文字、数字、アンダースコアを許可する以外はすべて削除するにはどうすればよいですか?私はこのコードを試してみましたが、それはスペースを許可:文字、数字、アンダースコアを除くすべてを削除するには?

function customUsername($username) 
{ 
    if (!preg_match('/^[a-z.,\-]+$/i',$username)) 
    { 
     $this->form_validation->set_message('customUsername', 'The username field'); 
    } 
} 
+1

可能な複製を許可するので、単純な(http://stackoverflow.com/questions/18561943/codeigniter -alpha-numeric-form-validation-not-accepting-space) –

+0

この回答を確認してください:http://stackoverflow.com/questions/9164548/codeigniter-form-validation-alpha-and-spaces –

+0

私の答えを試してみてくださいあなたのために働く – JYoThI

答えて

1

あなたはすべての文字のASCIIコード、番号を使用し、アンダースコアができ、次の正規表現

function customUsername($username) 
{ 
    if (!preg_match('/^[a-zA-Z0-9_]+$/i',$username)) 
    { 
     $this->form_validation->set_message('customUsername', 'The username field'); 
    } 
} 
+0

働いていません。スペースも使用できます。 –

+0

IFステートメント内のステートメントは、スペースが$ usernameに存在する場合に実行されます。あなたのユースケースは何ですか? – imprezzeb

1

を使用してください。

ASCIIコードhttp://ascii.cl/のこのリンクに従ってください。

jQueryはこれのようです。

$('#keyId').keydown(function(e){ 
    var key = e.charCode || e.keyCode || 0;    
    return (
     key == 8 || 
     (key >= 23 && key <= 105) 
    ); 
}); 
0

それは[スペースを受け付けないCodeIgniterのアルファ\ _numericフォーム検証]のだけAlphanumericUnderscoreのみ

<?php 

    $str='fdfdf5_'; 

    if(preg_match('/^[a-zA-Z0-9_]+$/',$str)) 
    { 
     echo "success"; 
    } 
    else 
    { 
     echo "failed"; 
    } 

    ?> 
関連する問題