आप कितनी बार एप्लिकेशन विकसित करते हैं और आप प्रत्येक इनपुट फ़ील्ड के लिए समान सत्यापन लिखते हैं। ऐसा ही एक उदाहरण उपयोगकर्ता पंजीकरण, लॉगिन स्क्रीन या पंजीकरण स्क्रीन या कोई अन्य स्क्रीन है। प्रत्येक इनपुट फ़ील्ड के लिए कोड की एक ही पंक्ति लिखना कठिन हो जाता है इसके अलावा आप एक ही गलती कर सकते हैं।
डिज़ाइन के अनुसार प्रत्येक फ़ील्ड के लिए सत्यापन लिखने की अनुशंसा नहीं की जाती है, बल्कि आपको सामान्य सत्यापन कार्य लिखना चाहिए।
इसलिए इस ब्लॉग में हम इनपुट टेक्स्ट फ़ील्ड्स की सामान्य सत्यापन लाइब्रेरी लिखेंगे।
आनुवंशिक सत्यापन पुस्तकालय लिखने के लाभ।
- सभी कार्यों के लिए सक्षम कोड का पुन:उपयोग करें।
- मानवीय त्रुटि की संभावना कम हो रही है।
- सेटअप करने और अपने कोड से जुड़ने में बहुत तेज़।
- एक फ़ंक्शन को फिर से लिख सकता है और सभी में प्रतिबिंबित होगा।
- एक फ़ंक्शन को बदलने से सब कुछ बदल जाएगा।
आइए शुरू करें,
हम अपनी वेलिडेशन लाइब्रेरी और वेलिडेशन एप्लिकेशन विकसित करेंगे, जहां हम अपनी लाइब्रेरी के साथ 4 इनपुट फील्ड को वेलिडेट करेंगे।
हमारी लाइब्रेरी सामान्य होगी और जरूरत के अनुसार पूरी तरह से विस्तारित होगी।
चरण 1 - ओपन एक्सकोड, सिंगल व्यू एप्लिकेशन, इसे वैलिडेशन नाम दें।
चरण 2 - नया वर्ग बनाएं, फ़ाइल - → नई फ़ाइल जोड़ें - → स्विफ्ट फ़ाइल - → Validtion.swift।
चरण 3 - Main.storyboard खोलें और UI को नीचे दिखाए अनुसार जोड़ें
हमने 4 टेक्स्ट फ़ील्ड और एक बटन जोड़ा है, सभी फ़ील्ड दर्ज करने के बाद जब उपयोगकर्ता मान्य बटन पर टैप करता है, तो यह सभी फ़ील्ड और प्रिंट को मान्य करता है जो गलत तरीके से दर्ज किया गया था, अगर सब ठीक हो जाता है तो यह प्रिंट करता है कि सभी फ़ील्ड सही हैं।
चरण 4 - बटन के लिए @IBAction और सभी इनपुट फ़ील्ड के लिए @IBOutlet बनाएं
आयात करें @IBOutlet varValidEmailTxtFld:UITextField! @IBOutlet varValidPasswordTxtFld:UITextField! @IBOutlet varValidPhoneTxtFld:UITextField! @IBAction func validateBtn(_ प्रेषक:कोई भी) { }}चरण 5 − Validation.swift खोलें, यहां हम अपना वेलिडेशन कोड जोड़ेंगे।
नीचे दिए गए कोड को कॉपी करें और Validation.swift में पेस्ट करें
इंपोर्ट फाउंडेशनक्लास वैलिडेशन {सार्वजनिक funcValidName(name:String) ->Bool {// लंबाई 18 वर्ण अधिकतम और 3 वर्ण न्यूनतम, आप हमेशा संशोधित कर सकते हैं। चलो nameRegex ="^\\w{3,18}$" trimmedString =name.trimmingCharacters(in:.whitespaces) चलो वैलिडेटनाम =NSPredicate (प्रारूप:"SELF MATCHES%@", nameRegex) चलो isValidateName =ValidName.evaluate( के साथ:trimmedString) वापसी isValidateName} सार्वजनिक func वैधताफोननंबर (फोननंबर:स्ट्रिंग) -> बूल { चलो फोननंबर रेगेक्स ="^ [6-9] \\ डी {9} $" ट्रिम किए गएस्ट्रिंग =फोन नम्बर। ट्रिमिंग कैरेक्टर (इन:व्हाइटस्पेस) चलो वैलिडेटफोन =एनएसपी्रेडिकेट (प्रारूप:"सेल्फ मैच% @", फोननंबर रेगेक्स) लेट वैलिडफोन =वैलिडेटफोन। इवैल्यूएट (साथ:ट्रिम्डस्ट्रिंग) रिटर्न वैलिडफोन} पब्लिक फंक वैलिडेट ईमेल आईडी (ईमेलआईडी:स्ट्रिंग) -> बूल {ईमेल रेगेक्स ="[ए-जेड 0- 9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" ट्रिम किए गए स्ट्रिंग =ईमेल आईडी.ट्रिमिंग कैरेक्टर (इन:व्हाइटस्पेस दें) ) चलो मान्य करेंईमेल =एनएसपी्रेडिकेट (प्रारूप:"स्वयं से मेल खाता है% @", ईमेल रेगेक्स) चलो isValidateEmail =ValidEmail.evaluate (साथ:trimmedString) वापसी मान्य है ईमेल } पब्लिक फंक वैलिडेटपासवर्ड (पासवर्ड:स्ट्रिंग) -> बूल {//न्यूनतम 8 अक्षर कम से कम 1 वर्णमाला और 1 संख्या:चलो पासरेगेक्स ="^ (? =। * [ए-ज़ा-जेड]) (? =। * \\d)[A-Za-z\\d]{8,}$" trimmedString =password.trimmingCharacters(in:.whitespaces) चलो वैलिडेटपासॉर्ड =NSPredicate(format:"SELF MATCHES %@", passRegEx) चलो isvalidatePass =ValidPassord.evaluate(साथ:trimmedString) वापसी isvalidatePass} सार्वजनिक func मान्यAnyOtherTextField(otherField:String) -> बूल { अन्य रेगेक्सस्ट्रिंग ="आपका रेगेक्स स्ट्रिंग" को ट्रिम करने दें :"सेल्फ मैच% @", अन्य रेगेक्सस्ट्रिंग) चलो isValidateOtherString =ValidOtherString.evaluate (साथ:trimmedString) वापसी isValidateOtherString}}
हम आवश्यकता के अनुसार प्रत्येक इनपुट के लिए RegexString में हेरफेर कर सकते हैं।
चरण 6 - ViewController.swift खोलें, और Validation.swift का ऑब्जेक्ट बनाएं
var सत्यापन =सत्यापन ()
अब, हम इनपुट फ़ील्ड को खोलने के लिए गार्ड का उपयोग करेंगे
गार्ड लेट नेम =वैलिडेटनामTxtFld.text, ईमेल करें =वैलिडेट ईमेलTxtFld.text, पासवर्ड दें =वैलिडेटपासवर्डTxtFld.text, फोन को वैलिडेट करें =फोन को वैलिडेट करें।चरण 7 - अब हम प्रत्येक क्षेत्र के लिए अपने मान्य कार्यों को कॉल करेंगे, और जांच करेंगे कि क्या यह गलत है और "फ़ील्ड अमान्य" प्रिंट करेगा या नहीं।
let isValidateName =self.validation.validateName(name:name)if (isValidateName ==false) {print("गलत नाम") रिटर्न} let isValidateEmail =self.validation.validateEmailId(emailID:ईमेल) if (isValidateEmail ==असत्य) {प्रिंट ("गलत ईमेल") वापसी} लेट isValidatePass =self.validation.validatePassword (पासवर्ड:पासवर्ड) अगर (isValidatePass ==false) {प्रिंट ("गलत पास") रिटर्न} isValidatePhone =self.validation। वैलिडाफोन नंबर (फोन नंबर:फोन) अगर (isValidatePhone ==false) {प्रिंट ("गलत फोन") रिटर्न}चरण 8 - अगर सभी फ़ील्ड सही हैं तो हम "सभी फ़ील्ड सही हैं" प्रिंट करेंगे
if (isValidateName ==true || isValidateEmail ==true || isValidatePass ==true || isValidatePhone ==true) { प्रिंट ("सभी फ़ील्ड सही हैं")}हम कर चुके हैं! VeiwController.swift के लिए अंतिम कोड चेकआउट करें
आयात करें @IBOutlet varValidEmailTxtFld:UITextField! @IBOutlet varValidPasswordTxtFld:UITextField! @IBOutlet varValidPhoneTxtFld:UITextField! @IBAction func validateBtn (_ प्रेषक:कोई भी) { गार्ड लेट नाम =वैलिडेटनामTxtFld.text, ईमेल को मान्य करें =ईमेल को मान्य करें। वैलिडेटनाम (नाम:नाम) अगर (isValidateName ==असत्य) {प्रिंट ("गलत नाम") वापसी} चलो isValidateEmail =self.validation.validateEmailId (ईमेल आईडी:ईमेल) अगर (isValidateEmail ==false) {प्रिंट ("गलत ईमेल" ) वापसी} चलो isValidatePass =self.validation.validatePassword (पासवर्ड:पासवर्ड) अगर (isValidatePass ==false) {प्रिंट ("गलत पास") वापसी } चलो isValidatePhone =self.validation.validaPhoneNumber (फोन नंबर:फोन) अगर (isValidatePhone ==झूठा) {प्रिंट ("गलत फोन") वापसी} अगर (isValidateName ==true || isValidateEmail ==true || isValidatePass ==true || है ValidatePhone ==true) {प्रिंट ("सभी फ़ील्ड सही हैं")}}}