मैं एक फॉर्म सत्यापन बनाना चाहता हूं और मैं यह सुनिश्चित करना चाहता हूं कि उपयोगकर्ता टेक्स्टबॉक्स में कोई भी खतरनाक कोड दर्ज न करें ताकि मैं इसका उपयोग करना चाहता preg_match
ऐसा करने के लिए। मैं उपयोगकर्ताओं को टाइप करने के लिए क्या पसंद नहीं करता (ए-जेड से शब्दों के बजाय कुछ-कुछ, ए-जेड और नंबर से शब्द)। अब मैं कैसे उपयोग कर सकता हूं preg_match
यहाँ?
उत्तर:
जवाब के लिए 3 № 1यह रेगेक्स केवल अक्षरों और संख्याओं की अनुमति देगा।
/^[A-Zd]+$/i
preg_match में उपयोग किया जाता है
if(preg_match("/^[A-Zd]+$/i", $string)) {
echo "Good";
} else {
echo "Bad";
}
Regex101 डेमो: https://regex101.com/r/wH4uQ3/1
The ^
तथा $
पूरे स्ट्रिंग मैच की आवश्यकता होती है (वे लंगर) कर रहे हैं । को []
एक चरित्र वर्ग अर्थ किसी भी चरित्र के अंदर की अनुमति दी है ।को +
(यह एक परिमाणक के रूप में जाना जाता है) पूर्ववर्ती वर्ण के एक या अधिक का अर्थ है ।को A-Z
एक सीमा है कि चरित्र वर्ग के अक्षरों को समझता है a-z
. d
एक नंबर है । को /
s सीमांकक है जहां regex शुरू होता है और समाप्त होता है कह रही है ।को i
एक संशोधक regex मामले असंवेदनशील बनाने (निकाल सकता है कि और जोड़ a-z
तो लोअरकेस अक्षरों के रूप में अच्छी तरह से अनुमति दी जाती है) ।
PHP डेमो: https://eval.in/486282
नोट PHP डेमो विफल रहता है क्योंकि रहितसफेद isn ' t की अनुमति दी । श्वेत रिक्ति जोड़ने की अनुमति देने के लिए h
या s
वर्ण वर्ग में ( s
शामिल h
तो दोनों के लिए कोई ज़रूरत नहीं है; h
क्षैतिज रिक्तियों के लिए है.) ।
उत्तर № 2 के लिए -1
ये रहा एक सरल उदाहरण:
तुम पर और अधिक बाहर की जांच कर सकते हैं: http://php.net/manual/en/function.preg-match.php
आप यह भी कर सकते हैं: $email = htmlspecialchars($_POST["email"]);
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}