如何在 UITextField 中只允许数字和字母没有任何空格且正好是 8 个字符
How to allow numbers and letters only without any whitespace and exactly 8 characters in UITextField
我是 swift iOS 开发的新手,我需要只允许在 UITextField 中输入没有任何白色的数字和字母 space 并且恰好 8 个字符。
只有数字和字母没有任何白色space我遵循的逻辑是:
extension [YourViewController]: UITextFieldDelegate
{
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
do {
let regex = try NSRegularExpression(pattern: ".*[^A-Za-z0-9 ].*", options: [])
if regex.firstMatch(in: string, options: [], range: NSMakeRange(0, string.count)) != nil {
return false
}
}
catch {
print("ERROR")
}
return true
}
}
我想在其中包含恰好 8 个字符的逻辑。如何实现!?
试试这个代码,它可能会帮助你实现你的目标:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
do {
let text = (textField.text! as NSString).replacingCharacters(in: range, with: string)
let regex = try NSRegularExpression(pattern: "^([a-zA-Z0-9]{0,10})$", options: [])
if regex.firstMatch(in: text, options: [], range: NSMakeRange(0, text.count)) != nil {
return true
}
}
catch {
print("ERROR")
}
return false
}
我是 swift iOS 开发的新手,我需要只允许在 UITextField 中输入没有任何白色的数字和字母 space 并且恰好 8 个字符。
只有数字和字母没有任何白色space我遵循的逻辑是:
extension [YourViewController]: UITextFieldDelegate
{
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
do {
let regex = try NSRegularExpression(pattern: ".*[^A-Za-z0-9 ].*", options: [])
if regex.firstMatch(in: string, options: [], range: NSMakeRange(0, string.count)) != nil {
return false
}
}
catch {
print("ERROR")
}
return true
}
}
我想在其中包含恰好 8 个字符的逻辑。如何实现!?
试试这个代码,它可能会帮助你实现你的目标:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
do {
let text = (textField.text! as NSString).replacingCharacters(in: range, with: string)
let regex = try NSRegularExpression(pattern: "^([a-zA-Z0-9]{0,10})$", options: [])
if regex.firstMatch(in: text, options: [], range: NSMakeRange(0, text.count)) != nil {
return true
}
}
catch {
print("ERROR")
}
return false
}