Domanda

come faccio a utilizzare la funzione PHP preg_match () per testare una stringa per vedere se esistono spazi?

Esempio

"questa frase sarebbe essere testato vero per gli spazi"

"thisOneWouldTestFalse"

È stato utile?

Soluzione

Se siete interessati a qualsiasi spazio bianco (tra cui schede, ecc), l'uso \s

if (preg_match("/\\s/", $myString)) {
   // there are spaces
}

se siete solo interessati a spazi, allora non avrete nemmeno bisogno di un'espressione regolare:

if (strpos($myString, " ") !== false)

Altri suggerimenti

Si veda anche questa domanda StackOverflow che risolve questo.

E, a seconda se si desidera rilevare le schede e altri tipi di spazio bianco, si consiglia di guardare il normale sintassi delle espressioni Perl per cose come \ b \ w e [: space:]

È possibile utilizzare:

preg_match('/[\s]+/',.....)
[\\S]

caso- superiori 'S' sicuramente funzionerà.

Come sull'utilizzo ctype_graph per questo scopo? Ciò ampliare la portata di spazio per qualsiasi "spazio bianco char" che non stampa nulla visibile sullo schermo (come \ t, \ n) anche. Tuttavia questo è nativo e dovrebbe essere più veloce di preg_match.

$x = "string\twith\tspaces" ;
if(ctype_graph($x))
    echo "\n string has no white spaces" ;
else
    echo "\n string has spaces" ;

più veloce da usare:

strstr($string, ' ');

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top