删除所有空格并在用户名的开头包含@

时间:2014-07-30 20:25:05

标签: php regex

所以这篇文章分为两部分:

我发现了一些在开始时删除空格的不同方法。字符串的结尾或发送错误,如果有任何空格 - 但我如何删除字符串中的所有空格($ name)? <通过这个,如果有人用空格输入他们的全名,脚本应该自动将他们的名字和姓氏放在一起而没有空格而不会出错。

另外,如何确保@符号是字符串开头的默认值,如twitter用户名?

5 个答案:

答案 0 :(得分:2)

尝试str_replace()

$name = 'bill harrison jones';
$name = '@'.str_replace(' ', '', $name);

See demo

答案 1 :(得分:2)

如果用空格表示空格字符,则可以使用str_replace

$string = 'There are two  spaces here .';
echo str_replace(' ', '', $string); //Outputs "Therearetwospaceshere."

如果您需要使用preg_replace来删除换行符或制表符以及空格:

$string = "There are two  spaces and a \n line break here.";
echo preg_replace('/\s+/', '', $string); //Outputs "Therearetwospacesandalinebreakhere."

为了验证字符串以@符号开头,我会使用正则表达式:

if (preg_match('/^@/', $string))
   echo 'Begins with @';
else
   echo 'Does not being with @';

答案 2 :(得分:1)

  1. 您可以使用trim()删除字符串开头和结尾的空格:

    $string = " hello ";
    $newstring = strim($string);
    echo $newstring; // outputs "hello"
    

    如果您要从字符串中删除所有空白,可以使用preg_replace()

    $string = "hello
    hello ";
    $newstring = preg_replace('/\s+/', '', $string);
    echo $newstring; // outputs "hellohello"
    
  2. 您可以使用preg_match()检查开头字符:

    $string = "@esqew";
    if (preg_match('/@([\w]+)/', $string) == 1) {
        // string starts with "@"
    }
    

    <子> Debuggex

    但是请小心,因为Twitter用户名的跟随stricter regex比你想象的要多。

答案 3 :(得分:0)

你的第一个问题令人困惑。听起来你已经解决了你的问题。尽管如此,str_replace是您想要的功能。

你的第二个应该属于另一个问题。但是,字符串是一个字符数组。所以我想以下是可行的

$name = array_unshift($name, '@');

答案 4 :(得分:0)

要删除所有空格和空白区域(如休息),请使用此

$string = preg_replace('/\s+/', '', $string);

支票@

if($string[0] != '@')
  echo 'Error';
else
//do something

如果您想在用户名为@时添加@,请使用此代码

$string = '@' . ltrim($string,'@');