如何检查UITextField值的特定types的字符,例如字母或数字?
我想要做的就是在下面的if语句中设置一些布尔值为true,如果textField中包含字母,数字,破折号和空格以外的任何内容。
然后在电子邮件字段中检查有效的电子邮件。
这是我如何检查长度:
if countElements(textField.text!) < 2 || countElements(textField.text) > 15 { errorLabel.text = "Name must have between 2 and 15 characters." self.signUpView.signUpButton.enabled = false } else { errorLabel.text = "" self.signUpView.signUpButton.enabled = true }
这个if语句在UITextFieldDelegate方法的textFielddidEndEditing里面。 我有一种感觉,我将不得不使用某种forms的正则expression式来检查一个有效的电子邮件。
使用正则expression式来检查一个字段是否只包含我允许的字符,并返回一个布尔值,告诉我文本字段是否包含不允许的字符,这样才能显示错误信息。
有没有一些首选的方法来做到这一点? 在Objective-C中,我使用NSCharacterSet,但不知道如何在这里实现。
谢谢你的时间
这就是我最终做到的。
override func textFieldDidEndEditing(textField: UITextField) { let usernameField = self.signUpView.usernameField.text as NSString let alphaNumericSet = NSCharacterSet.alphanumericCharacterSet() let invalidCharacterSet = alphaNumericSet.invertedSet let rangeOfInvalidCharacters = usernameField.rangeOfCharacterFromSet(invalidCharacterSet) let userHasNameInvalidChars = rangeOfInvalidCharacters.location != NSNotFound if textField == self.signUpView.usernameField { if userHasNameInvalidChars { errorLabel.text = "Letters and numbers only please!" self.signUpView.signUpButton.enabled = false // do more error stuff here } else { self.signUpView.signUpButton.enabled = true } } }
感谢博客文章: http : //toddgrooms.com/2014/06/18/unintuitive-swift/
- 从string中提取价格
- 在Swift中使用正则expression式进行简单search时,如何避免由于searchstring中的特殊字符造成的错误?
- 如何在Swift for iOS中使用NSDateFormatter格式化date?
- NSArray的NSArray中的对象的属性的NSPredicate
- NSRegularExpression:用<a>标签replaceurl文本
- Swift – 如何使用Firebase中的“shouldChangeTextInRange”进行实时search?
- 使用正则expression式删除空行
- 如果正则expression式有效,如何检查Swift?
- 我如何使用正则expression式来引用一个语句