Swift (iOS/macOS) में डेटा सत्यापन: लाइब्रेरीज़, उपकरण और व्यावहारिक उदाहरण
डेटा सत्यापन गुणवत्तापूर्ण iOS और macOS एप्लिकेशन विकसित करने के प्रमुख पहलुओं में से एक है। इनपुट डेटा की विश्वसनीय जाँच के बिना, उपयोगकर्ता को त्रुटियों, इंटरफ़ेस के गलत व्यवहार या यहाँ तक कि क्रैश का सामना करना पड़ सकता है। इस लेख में, हम Swift में डेटा सत्यापन के लिए सर्वोत्तम लाइब्रेरीज़ और दृष्टिकोणों पर चर्चा करेंगे, साथ ही विशिष्ट कोड उदाहरण भी प्रस्तुत करेंगे।
डेटा सत्यापन की आवश्यकता क्यों है?
सत्यापन निम्नलिखित में मदद करता है:
- इनपुट डेटा (ईमेल, फ़ोन, पासवर्ड) की सटीकता सुनिश्चित करना।
- सर्वर-साइड त्रुटियों को रोकना।
- तत्काल प्रतिक्रिया देकर उपयोगकर्ता अनुभव में सुधार करना।
- एप्लिकेशन की सुरक्षा बढ़ाना।
Swift में सत्यापन के लिए लोकप्रिय लाइब्रेरीज़
आजकल, कई सिद्ध लाइब्रेरीज़ हैं जो डेटा सत्यापन को सरल बनाती हैं:
- Validated — Combine और SwiftUI के समर्थन वाली हल्की लाइब्रेरी।
- SwiftValidator — टेक्स्ट फ़ील्ड सत्यापन के लिए पहली लाइब्रेरीज़ में से एक।
- Validator (Adamwaite द्वारा) — कई अंतर्निहित नियमों वाला सरल और लचीला उपकरण।
- Regex — कोई लाइब्रेरी नहीं, बल्कि रेगुलर एक्सप्रेशन के साथ काम करने के लिए एक अंतर्निहित तंत्र, जिसका उपयोग अक्सर सत्यापन के लिए किया जाता है।
उदाहरण 1: रेगुलर एक्सप्रेशन का उपयोग करके ईमेल सत्यापन
सबसे सरल तरीका NSRegularExpression या अंतर्निहित range(of:options:) विधि का उपयोग करना है।
import Foundation
func isValidEmail(_ email: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}" let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex) return emailPredicate.evaluate(with: email)}
// उपयोगprint(isValidEmail("test@example.com")) // trueprint(isValidEmail("invalid-email")) // falseउदाहरण 2: पासवर्ड सत्यापन (लंबाई, अंकों और प्रतीकों की उपस्थिति)
अक्सर आवश्यकता होती है कि पासवर्ड में कम से कम 8 वर्ण, कम से कम एक अंक और एक विशेष प्रतीक हो।
func isValidPassword(_ password: String) -> Bool { // कम से कम 8 वर्ण guard password.count >= 8 else { return false } // अंक की उपस्थिति की जाँच let digitRegex = ".*[0-9]+.*" let digitPredicate = NSPredicate(format: "SELF MATCHES %@", digitRegex) guard digitPredicate.evaluate(with: password) else { return false } // विशेष प्रतीक की उपस्थिति की जाँच let specialCharRegex = ".*[!@#$%^&*()_+\\\\-=\\\\[\\\\]{};':\\"\\\\\\\\|,./<>?]+.*" let specialPredicate = NSPredicate(format: "SELF MATCHES %@", specialCharRegex) guard specialPredicate.evaluate(with: password) else { return false } return true}
print(isValidPassword("Pass123!")) // trueprint(isValidPassword("weak")) // falseउदाहरण 3: Validator लाइब्रेरी (Adamwaite) का उपयोग
Validator लाइब्रेरी नियमों की श्रृंखला के लिए सुविधाजनक सिंटैक्स प्रदान करती है।
import Validator
let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "गलत ईमेल")let emailResult = "user@domain.com".validate(rule: emailRule)
switch emailResult {case .valid: print("ईमेल सही है")case .invalid(let errors): print("त्रुटि: \\(errors.first?.message ?? "")")}उदाहरण 4: आयु जाँच के लिए कस्टम वैलिडेटर
कभी-कभी यह जाँचना आवश्यक होता है कि उपयोगकर्ता एक निश्चित आयु से अधिक है।
struct AgeValidator { static func isValid(age: Int) -> Bool { return age >= 18 && age <= 120 }}
// उपयोगlet userAge = 25if AgeValidator.isValid(age: userAge) { print(