2011-11-03 72 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?答案有什么问题? –