2017-03-11 68 views
1

如何刪除所有內容,但僅在驗證用戶名時才允許字母,數字和下劃線?我想這個代碼,但它可以讓空間:如何刪除一切,但允許字母,數字和下劃線?

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

[笨阿爾法\ _numeric表單驗證不接受空間(的可能的複製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

使用以下的正則表達式

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

不工作。它也允許空格。 –

+0

如果$ username中有空格,則會執行IF語句內的語句。那麼你的用例是什麼? – imprezzeb

1

您可以使用每一個字母,數字的ASCII碼和下劃線。

關注此鏈接的ASCII碼http://ascii.cl/

jQuery是這樣的。

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

如此簡單,它僅允許AlphanumericUnderscore

<?php 

    $str='fdfdf5_'; 

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

    ?> 
相關問題