2010-07-15 18 views
6

Estoy usando pspell para deletrear algunas palabras. Sin embargo, si la palabra es algo así como G3523B, claramente no es una palabra mal escrita, pero pspell la cambia a GB. Me gustaría de alguna manera calificar una palabra como una palabra antes de tratar de deletrearla. Tal vez verificando si la cadena contiene números o caracteres especiales.PHP: ¿Cómo saber si una cadena contiene algún carácter especial?

Entonces, ¿cuál es la mejor manera de comprobar una cuerda para caracteres especiales o dígitos?

(si alguien tiene una idea mejor para conseguir lo que busco cuota por favor)

+0

tal vez algo como if ($ str == htmlspecialchars ($ cadena, ENT_NOQUOTES)) echo 'no hay caracteres especiales' o utilizar alguna expresión regular. Obviamente, ambas soluciones ralentizarán la aplicación. –

Respuesta

9

¿Cómo sobre el uso de una expresión regular:

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

Me ganaste con una solución similar: '$ is_word = (preg_match ('/ [^ a-z]/i', $ string) == 0)'; – Mike

+0

Gracias, creo que también debería incluir '' 'para palabras como no ... así que ¿debería incluir también' \ 'en mi clase de caracteres ya que estoy usando mysql_real_escape_string? ¡Gracias! –

+1

@John Isaacks: Creo que no es necesario, estamos revisando todo lo que no sea alfabeto, por lo que también será rechazado. – Sarfraz

6

Si lo que desea es comprobar si la cadena de entrada $ consiste única de caracteres az y AZ se pueden utilizar los siguientes:

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