2010-07-15 4 views
6

Я использую pspell для проверки орфографии некоторых слов. Однако, если это слово похоже на G3523B, это явно не слово с ошибкой, но pspell изменяет его на GB. Я хотел бы как-то квалифицировать слово как слово, прежде чем пытаться проверить его. Возможно, проверьте, содержит ли строка какие-либо числа или специальные символы.PHP: Как определить, содержит ли строка какие-либо специальные символы?

Итак, что является лучшим способом проверить строку для специальных символов или цифр?

(если кто-то имеет лучшее представление о том, чтобы добиться того, что я после пожалуйста, поделитесь)

+0

может быть что-то вроде если ($ ул == htmlspecialchars ($ ул, ENT_NOQUOTES)) эхо «без специальных символов» или использовать какое-то регулярное выражение. Очевидно, что оба решения замедлят применение. –

ответ

9

Как об использовании регулярных выражений:

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

Вы избили меня до аналогичного решения: '$ is_word = (preg_match ('/ [^ a-z]/i', $ string) == 0)'; – Mike

+0

Спасибо, я думаю, что я также должен включать '' 'для таких слов, как do not ... так что я должен также включить' '' в свой класс символов, так как я использую mysql_real_escape_string? Благодаря! –

+1

@John Isaacks: Я думаю, что это не нужно, мы проверяем все, что не является алфавитом, поэтому оно также будет отвергнуто. – Sarfraz

6

Если вы просто хотите проверить, состоит ли строка $ входной только из символов AZ и AZ вы можете использовать следующее:

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