检查字符串是否只是空格?

JD *_*cks 52 php

可能重复:
如果字符串只包含空格?

我不想更改字符串,也不想检查它是否包含空格.我想检查整个字符串是否只有空格.最好的方法是什么?

web*_*ave 109

这将是最快的方式:

$str = '      ';
if (ctype_space($str)) {

}
Run Code Online (Sandbox Code Playgroud)

在空字符串上返回false,因为empty 不是空格.如果你需要包含一个空字符串,你可以添加|| $str == ''这仍然会比正则表达式或修剪更快地执行.

ctype_space

  • 哇,我没想到它会比装饰简单得多,但我猜它可以.我从未见过或使用的函数+1. (8认同)
  • 查看:http://php.net/manual/en/book.ctype.php 检查字母数字字符 ctype_alpha — 检查字母字符 ctype_cntrl — 检查控制字符 ctype_digit — 检查数字字符 ctype_graph — 检查除空格之外的任何可打印字符 ctype_lower — 检查小写字符 ctype_print — 检查可打印字符 ctype_punct — 检查除空格或字母数字字符之外的任何可打印字符 ctype_space — 检查空白字符 ctype_upper — 检查大写字符... (2认同)

MAN*_*UCK 42

因为trim返回一个删除了空格的字符串,所以用它来检查

if (trim($str) == '')
{
 //string is only whitespace
}
Run Code Online (Sandbox Code Playgroud)

  • 请记住,修剪会将您传入其中的任何内容转换为字符串.ie(trim(false)=='')将返回true,这可能超出原始海报的要求(但很可能很好) (5认同)

sve*_*ens 11

if( trim($str) == "" )
    // the string is only whitespace
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题.


Wri*_*ken 5

preg_match('/^\s*$/',$string)

如果不允许为空,请将 * 更改为 +

  • @MANCHUCK:我什至投票反对和ctype_space,但这里已经有评论,所以我选择不删除它。 (2认同)