2010-07-15 20 views
6

Bazı kelimeleri yazım denetimi yapmak için pspell kullanıyorum. Ancak, söz konusu kelime G3523B gibi bir şeyse, açıkça yanlış yazılmış bir kelime değildir, ancak pspell bunu GB olarak değiştirir. Bir kelimeyi bir kelime olarak kaleme almayı denemeden önce hecelemeyi isterim. Belki de dizenin herhangi bir sayı veya özel karakter içerip içermediğini kontrol etme.PHP: Bir dizenin özel karakterler içerip içermediğini nasıl anlarsınız?

Özel karakter veya rakamlar için bir dizeyi kontrol etmenin en iyi yolu nedir?

+0

şey ($ str == htmlspecialchars ($ str, ENT_NOQUOTES)) echo 'özel karakter' ya da bazı regexp'i kullanın. Açıkçası her iki çözüm de uygulamayı yavaşlatacaktır. –

cevap

9

(Birisi lütfen paylaşımından sonra neysem başarmak için daha iyi bir fikri varsa) nasıl bir normal ifade kullanma hakkında: Sadece dize $ girişi olup olmadığını kontrol ederiz istiyorsanız

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

Beni benzer bir çözüme yendiniz: $ is_word = (preg_match ('/ [^ a-z]/i', $ string) == 0) '; – Mike

+0

Teşekkürler, ben de "yok" gibi sözcükler için de dahil etmeliyim, mysql_real_escape_string kullanıyorum bu yüzden karakter sınıfımda da \ 'i içermeli miyim? Teşekkürler! –

+1

@John Isaacks: Sanırım bu gerekli değil, alfabe olmayan her şeyi kontrol ediyoruz, dolayısıyla reddedilecek. – Sarfraz

6

yalnızca aşağıdaki kullanabilirsiniz az ve AZ karakterlerin: eğer gibi

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