2011-11-03 70 views
-1

我在爲我的網站註冊頁面,我想格式化用戶名字段,以防止用戶提交用戶名和空格。 例如,如果用戶提交像「空間人」這樣的用戶名,我想將其更改爲「space_man」。 我在用php工作,我該如何去做。檢查字符串中的空格

+1

改變並不像他們將無法登陸嘗試「太空人」 –

+0

,但我會用在網址URL和空間的用戶名總是拋出的錯誤是一個好主意 – MrFoh

+1

沒有與空間沒​​有問題在URL中,如果你知道如何處理它們。無論如何,你一直在問如何「檢查」一個空間,這是正確的意圖。警告用戶非法角色比靜默替換更好。 –

回答

0

嗯最好的方法之一是在兩個地方 - 客戶端和服務器驗證。

在客戶端,您必須使用javascript進行驗證。

obj.value.replace(" ", "_"); 
alert("Invalid username. Changing space to underscore."); 

在服務器端也做同樣的事情在php中。

strstr($_POST['username'],' ','_'); 

如果「空間」是唯一對您而言很重要的事情,那麼可以這樣做。否則你必須寫出所有的規則。

-3

看一看http://www.php.net/str_replace - 我敢肯定你會從那裏弄清楚它。當然,還有很多東西需要驗證,所以最好做白名單過濾(說出你允許的,而不是你不允許的),像這樣的正則表達式:

if (! preg_match('/^[a-z0-9]{3,32}$/', $_POST['username'])) { 
    die('Invalid username'); // of course, dying is not good either, just for the example 
} 
+3

任何一個downvoted的人可以給出一個理由嗎?我真的很想知道我的答案有什麼問題。 – deviousdodo

0

str_replace(' ','_',$input);

+0

真的有興趣什麼是錯誤的這個功能 – k102

0

這是一個簡單的字符串替換:

$username = str_replace(" ", "_", $username); 
0

我當然明白strtr

strtr($_GET['username'],' ','_'); 

這實在是太強大,太

strtr($_GET['username'],array(' '=>'_',"\t"=>'_')); 

str_replace函數,很明顯,也可以。

0
str_replace(' ', '_', $txtUserName); 
+0

誰給downvote?答案有什麼問題? –