【发布时间】:2014-07-30 20:25:05
【问题描述】:
所以这篇文章分为两部分:
我找到了几种不同的方法来删除字符串开头和结尾的空格,或者如果有空格则发送错误 - 但是如何删除字符串 ($name) 中的所有空格?
另外,我如何确保 @ 符号是字符串开头的默认值,例如 twitter 用户名?
【问题讨论】:
所以这篇文章分为两部分:
我找到了几种不同的方法来删除字符串开头和结尾的空格,或者如果有空格则发送错误 - 但是如何删除字符串 ($name) 中的所有空格?
另外,我如何确保 @ 符号是字符串开头的默认值,例如 twitter 用户名?
【问题讨论】:
如果空格是指空格字符,则可以使用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 @';
【讨论】:
【讨论】:
您可以使用trim() 删除字符串开头和结尾的空格:
$string = " hello ";
$newstring = strim($string);
echo $newstring; // outputs "hello"
如果你想从字符串中删除all空格,你可以使用preg_replace():
$string = "hello
hello ";
$newstring = preg_replace('/\s+/', '', $string);
echo $newstring; // outputs "hellohello"
您可以使用preg_match()检查开始字符:
$string = "@esqew";
if (preg_match('/@([\w]+)/', $string) == 1) {
// string starts with "@"
}
但请小心,因为 Twitter 用户名的 stricter regex 比您想象的要多。
【讨论】:
^。
您的第一个问题令人困惑。听起来你已经解决了你的问题。尽管如此,str_replace 是您想要的功能。
您的第二个问题应该属于一个单独的问题。但是,字符串是字符数组。所以我想以下方法会起作用
$name = array_unshift($name, '@');
【讨论】:
要删除所有空格和空白(如 break ),请使用此
$string = preg_replace('/\s+/', '', $string);
检查@
if($string[0] != '@')
echo 'Error';
else
//do something
如果您想在用户名没有@ 时添加@,请使用此代码
$string = '@' . ltrim($string,'@');
【讨论】: