2010-07-15 25 views
6

Ich benutze pspell zu Rechtschreibprüfung einige Wörter. Wenn das Wort jedoch etwas wie G3523B ist, ist es eindeutig kein falsch geschriebenes Wort, aber pspell ändert es in GB. Ich möchte ein Wort irgendwie als ein Wort qualifizieren, bevor ich versuche es zu buchstabieren. Vielleicht prüfen, ob die Zeichenfolge irgendwelche Zahlen oder Sonderzeichen enthält.PHP: Wie kann man feststellen, ob eine Zeichenfolge Sonderzeichen enthält?

Also, was ist der beste Weg, um eine Zeichenfolge für spezielle Zeichen oder Ziffern zu überprüfen?

(wenn jemand eine bessere Idee zu erreichen, was ich nach bitte Aktie am)

+0

vielleicht so etwas wie if ($ str == htmlspecialchars ($ str, ENT_NOQUOTES)) echo 'keine Sonderzeichen' oder etwas regexp verwenden. Offensichtlich werden beide Lösungen die Anwendung verlangsamen. –

Antwort

9

Wie über einen regulären Ausdruck mit:

if (preg_match('/[^a-zA-Z]+/', $your_string, $matches)) 
{ 
    echo 'Oops some number or symbol encountered !!'; 
} 
else 
{ 
    // Everything fine... carry on 
} 
+0

Sie haben mich zu einer ähnlichen Lösung geschlagen: '$ is_word = (preg_match ('/ [^ a-z]/i', $ string) == 0)'; – Mike

+0

Danke, ich denke, ich sollte '' 'auch für Wörter wie nicht ... also sollte ich auch das' \ 'in meine Zeichenklasse einschließen, da ich mysql_real_escape_string verwende? Vielen Dank! –

+1

@John Isaacks: Ich denke, das ist nicht nötig, wir überprüfen alles, was kein Alphabet ist, also wird es auch abgelehnt. – Sarfraz

6

Wenn Sie wollen einfach nur prüfen, ob die Zeichenfolge $ input besteht nur aus Zeichen az und AZ Sie folgendes verwenden:

if(!preg_match('/^\[a-zA-Z]+$/',$input)) { 
    // String contains not allowed characters ... 
} 
Verwandte Themen