2014-04-18 37 views

回答

3

使用strpos()

if (strpos(substr($string, 0, 1), ' ') !== FALSE) { 
    // has whitespace 
} 

或者preg_match()

if(preg_match('/\s/', substr($string, 0, 10))) { 
    // has whitespace 
} 

preg_match()超過strpos()的好處是,它可以檢測任何種空白不只是空格字符。 \s是角色分類[\r\n\t\f ]的簡寫表示。

+0

我已經給出了相同的答案,但是你是不是薩格爾的解決方案更優雅這裏SUBSTR()? 'ctype_ *'函數很好,但很少使用。 (至少是我) – hek2mgl

+0

@ hek2mgl:確實。但在這種情況下'preg_match'可能會更快(特別是對於長字符串),因爲它不需要掃描整個字符串。它在引擎檢測到第一個空白字符時停止搜索。我不確定ctype_space是如何工作的,但無論如何它肯定是一個有用的函數。 –

+0

'ctype _ *()'[functions](https://github.com/php/php-src/blob/master/ext/ctype/ctype.c)在內部調用宏並且不掃描整個字符串。但是,我現在再次閱讀該函數的文檔,並查看'ctype_string()'檢查字符串中的所有(!)字符是否爲空格。這在這裏不起作用。所以,您的答案仍然是正確的解決方案,甚至如果'ctype'功能很好。 – hek2mgl

1

您可以使用ctype_space()

if (ctype_space($value)) { 

} 
+0

我在想,這是如何解決問題的?它在文檔中說'檢查所提供的字符串中的所有字符是否爲空白。「意思是說,如果有任何非空白字符,它將返回false。 我從原始問題中瞭解到,他想知道前10個字符中是否有1-10個空格。 – Hamatti

相關問題