2010-07-15 14 views
6

मैं कुछ शब्दों की जांच करने के लिए pspell का उपयोग कर रहा हूं। हालांकि अगर शब्द G3523B जैसा कुछ है तो यह स्पष्ट रूप से गलत वर्तनी वाला शब्द नहीं है लेकिन pspell इसे जीबी में बदल देता है। मैं किसी भी तरह से शब्द की जांच करने से पहले किसी शब्द को शब्द के रूप में अर्हता प्राप्त करना चाहता हूं। शायद यह देखने के लिए जांच कर रहा है कि स्ट्रिंग में कोई संख्या या विशेष वर्ण हैं या नहीं।PHP: कैसे बताएं कि किसी स्ट्रिंग में कोई विशेष वर्ण है या नहीं?

तो विशेष वर्णों या अंकों के लिए स्ट्रिंग को जांचने का सबसे अच्छा तरीका क्या है?

+0

शायद कुछ करता है, तो जैसे ($ str == htmlspecialchars ($ str, ENT_NOQUOTES)) गूंज 'कोई विशेष वर्ण' या कुछ regexp का उपयोग करें। स्पष्ट रूप से दोनों समाधान आवेदन धीमा कर देंगे। –

उत्तर

9

(किसी को प्राप्त करने के लिए क्या मैं कृपया शेयर के बाद कर रहा हूँ एक बेहतर विचार है) कैसे एक regex का उपयोग कर के बारे में:

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

धन्यवाद, मुझे लगता है कि मुझे शब्दों के लिए '' 'भी शामिल करना चाहिए ... इसलिए मुझे अपने चरित्र वर्ग में' \ 'भी शामिल करना चाहिए क्योंकि मैं mysql_real_escape_string का उपयोग कर रहा हूं? धन्यवाद! –

+1

@ जॉन ईसाक्स: मुझे लगता है कि इसकी आवश्यकता नहीं है, हम कुछ भी जांच रहे हैं जो वर्णमाला नहीं है, इसलिए इसे भी खारिज कर दिया जाएगा। – Sarfraz

6

तुम सिर्फ है कि क्या स्ट्रिंग $ इनपुट होते देखना चाहते हैं तो केवल अक्षर az और AZ आप निम्नलिखित का उपयोग कर सकते:

if(!preg_match('/^\[a-zA-Z]+$/',$input)) { 
    // String contains not allowed characters ... 
} 
संबंधित मुद्दे