Swift3 密码和电子邮件的文本字段验证

Swift3 密码和电子邮件的文本字段验证,swift3,Swift3,我想分别为两个textfielfd实施textfield验证,但我无法这样做。我为两个textfielfd都有上行链路代理,但他们都被应用于两个文本字段,例如,email只接受10个字符。我们如何分别为email和mobile应用它呢?不,这是我编写的代码: func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) { if textField

我想分别为两个textfielfd实施textfield验证,但我无法这样做。我为两个textfielfd都有上行链路代理,但他们都被应用于两个文本字段,例如,email只接受10个字符。我们如何分别为email和mobile应用它呢?不,这是我编写的代码:

    func textFieldDidEndEditing(_ textField: UITextField, reason: UITextFieldDidEndEditingReason) {
        if textField == textfieldemail
                {
                    let providedEmailAddress = self.textfieldemail.text

                    let isEmailAddressValid = isValidEmailAddress(emailAddressString: providedEmailAddress!)

                    if isEmailAddressValid
                    {
                        print("Email address is valid")
                    }
                    else {

                        self.displayAlertMessage(messageToDisplay: "Email address is not valid")

                        }
                }
}

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let charsLimit = 10

    let startingLength = textField.text?.characters.count ?? 0
    let lengthToAdd = string.characters.count
    let lengthToReplace =  range.length
    let newLength = startingLength + lengthToAdd - lengthToReplace
    return newLength <= charsLimit

}
func textfielddendediting(textField:UITextField,原因:uitextfielddendeditingreason){
如果textField==textfieldmail
{
让providedEmailAddress=self.textfieldemail.text
让isEmailAddressValid=isValidEmailAddress(emailAddressString:providedEmailAddress!)
如果是有效的
{
打印(“电子邮件地址有效”)
}
否则{
self.displayAlertMessage(messageToDisplay:“电子邮件地址无效”)
}
}
}
func textField(textField:UITextField,shouldChangeCharacters范围:NSRange,replacementString:string)->Bool{
设charsLimit=10
让startingLength=textField.text?.characters.count±0
让lengthToAdd=string.characters.count
让lengthToReplace=range.length
让newLength=起始长度+长度添加-长度替换

return newLength您可以通过将标记赋予textfield并检查fun中的标记来唯一标识textfield

UITextFieldDelegate
分配给相应的ViewController

为文本字段设置委托

emailIDTxtFld.delegate = self
mobileNoTxtFld.delegate = self
emailIDTxtFld.tag = 1001
mobileNoTxtFld.tag = 1002
设置文本字段的标记

emailIDTxtFld.delegate = self
mobileNoTxtFld.delegate = self
emailIDTxtFld.tag = 1001
mobileNoTxtFld.tag = 1002
现在实现这些方法

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    let newString = (textField.text! as NSString).replacingCharacters(in: range, with: string)

    if textField.tag == 1002{
    //For MobileNo it will accept only 10 char
        if newString.characters.count > 10{
            return false
        }else{
            return true
        }
    }else if textField.tag == 1002{
     //your logic
    }
    return true
}

func textFieldDidEndEditing(_ textField: UITextField) {
    if textField.tag == 1001{
        if textField.isValidEmail(){
            // Code
        }else{
            print("Please Enter Vlaid Email ID")
        }

    }else if textField.tag == 1002{
        if textField.text?.characters.count == 10{
            // code
        }else{
            //code
        }
}