रेगुलर एक्सप्रेशन के साथ वैलिडेशन
Swift भाषा में ईमेल और फोन को वैलिडेट करने के लिए हम if कंडीशन जैसे कई कंडीशनल स्टेटमेंट्स का उपयोग कर सकते हैं, लेकिन यह एक लंबी प्रक्रिया है और ईमेल को वैलिडेट करने के लिए 50-100 if स्टेटमेंट्स हो सकते हैं।
इसलिए कंडीशनल्स के बजाय हम रेगुलर एक्सप्रेशन का उपयोग करेंगे। Swift NSPredicates प्रदान करता है जिसका उपयोग हम रेगुलर एक्सप्रेशन का मूल्यांकन और परीक्षण करने के लिए कर सकते हैं।
एक्सटेंशन के रूप में पुन: प्रयोज्य कोड
हम एक फंक्शन बनाएंगे जिसे हम String क्लास या UIViewController के एक्सटेंशन के रूप में उपयोग कर सकते हैं ताकि पूरे प्रोजेक्ट में इसका उपयोग किया जा सके।
अपने प्रोजेक्ट में किसी भी क्लास में निम्नलिखित कोड जोड़ें, या एक्सटेंशन जोड़ने के लिए एक अलग Swift क्लास बनाएं।
extension String {
var isValidEmail: Bool {
let regularExpressionForEmail = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
let testEmail = NSPredicate(format: "SELF MATCHES %@", regularExpressionForEmail)
return testEmail.evaluate(with: self)
}
var isValidPhone: Bool {
let regularExpressionForPhone = "^\\d{3}-\\d{3}-\\d{4}$"
let testPhone = NSPredicate(format: "SELF MATCHES %@", regularExpressionForPhone)
return testPhone.evaluate(with: self)
}
}
उपयोग उदाहरण
override func viewDidLoad() {
super.viewDidLoad()
print("11f".isValidEmail)
print("abc@xuyz.com".isValidEmail)
print("8892".isValidPhone)
print("998-877-2211".isValidPhone)
}
जब हम उपरोक्त कोड चलाते हैं, तो हमें निम्नलिखित आउटपुट मिलता है:
false
true
false
true
