2012-02-19 9 views

उत्तर

68

preg_match() का उपयोग करें।

if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work. 
{ 
    // string contains only english letters & digits 
} 
+4

हाँ। यह अधिक कुशल दिखता है। पहले गैर-इन-रेंज चरित्र को देखने के लिए संपूर्ण स्ट्रिंग स्कैन करने से अधिक समझदार लगता है। –

+0

उपरोक्त लिंक के एनबी अंग्रेजी शब्द: http://php.net/manual/en/function.preg-match.php –

+0

ठीक है, मैंने लिंक को अंग्रेजी संस्करण में अपडेट किया है। –

8

उदाहरण के लिए आप preg_match() फ़ंक्शन का उपयोग कर सकते हैं।

if (preg_match('/[^A-Za-z0-9]+/', $str)) 
{ 
    // ok... 
} 
5

इस शॉर्टकट

if(!preg_match('/[^\W_ ] /',$string)) { 

} 

class [^\W_] मैचों किसी भी अक्षर या अंक नहीं बल्कि रेखांकित पर एक नज़र डालें। और ! प्रतीक नोट करें। यह आपको पूरे उपयोगकर्ता इनपुट स्कैनिंग से बचाएगा।

22
if(ctype_alnum($string)) { 
    echo "String contains only letters and numbers."; 
} 
else { 
    echo "String doesn't contain only letters and numbers."; 
} 
+0

यह सुनिश्चित नहीं है कि लोग ctype फ़ंक्शन क्यों नहीं दे रहे हैं। मैं इमेजिंग नहीं कर सकता सीटीपी कार्यों की सीमा के साथ एक प्रदर्शन मुद्दा है। –

+0

ctype_alnum लोकेल निर्भर हैं इसलिए यह आपकी इच्छा के अनुसार काम नहीं कर सकता है! – thethakuri

1

यदि आपको यह जांचना है कि यह अंग्रेजी है या नहीं। आप नीचे फ़ंक्शन का उपयोग कर सकते हैं। किसी की मदद कर सकते हैं ..

function is_english($str) 
{ 
    if (strlen($str) != strlen(utf8_decode($str))) { 
     return false; 
    } else { 
     return true; 
    } 
} 
0

पीएचपी preg_match(regex, string) इस तरह का उपयोग कर एक नियमित अभिव्यक्ति के लिए एक स्ट्रिंग तुलना कर सकते हैं:

if (!preg_match('/[^A-Za-z0-9]+/', $string)) { 
    // $string contains only English letters and digits 
} 
संबंधित मुद्दे