所以这篇文章分为两部分:
我发现了一些在开始时删除空格的不同方法。字符串的结尾或发送错误,如果有任何空格 - 但我如何删除字符串中的所有空格($ name)? <通过这个,如果有人用空格输入他们的全名,脚本应该自动将他们的名字和姓氏放在一起而没有空格而不会出错。
另外,如何确保@符号是字符串开头的默认值,如twitter用户名?
答案 0 :(得分:2)
答案 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)
您可以使用trim()
删除字符串开头和结尾的空格:
$string = " hello ";
$newstring = strim($string);
echo $newstring; // outputs "hello"
如果您要从字符串中删除所有空白,可以使用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 "@"
}
<子> 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,'@');