gpt4 book ai didi

ios - 将输入的数字格式化为美国电话号码以格式化 (###) ###-####

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:27 24 4
gpt4 key购买 nike

我使用了这段代码,但我遇到的问题是,如果 texfield 为空(索引超出范围),它不起作用,另一个问题是,如果用户不更改电话号码并点击“保存”按钮,它将再次执行代码并插入“((”和“--”。

关于我能做什么有什么想法吗?

var stringts: NSMutableString = self.ts.text
stringts.insertString("(", atIndex: 0)
stringts.insertString(")", atIndex: 4)
stringts.insertString("-", atIndex: 5)
stringts.insertString("-", atIndex: 9)
self.ts.text = stringts

最佳答案

您可以在用户输入时验证输入。使用 UITextFieldDelgate 执行此操作:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

let str = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string)

if textField == txtFieldPhoneNumber{

return checkEnglishPhoneNumberFormat(string, str: str)

}else{

return true
}
}

验证输入的函数:

func checkEnglishPhoneNumberFormat(string: String?, str: String?) -> Bool{

if string == ""{ //BackSpace

return true

}else if str!.characters.count < 3{

if str!.characters.count == 1{

txtFieldPhoneNumber.text = "("
}

}else if str!.characters.count == 5{

txtFieldPhoneNumber.text = txtFieldPhoneNumber.text! + ") "

}else if str!.characters.count == 10{

txtFieldPhoneNumber.text = txtFieldPhoneNumber.text! + "-"

}else if str!.characters.count > 14{

return false
}

return true
}

希望这对您有所帮助!

关于ios - 将输入的数字格式化为美国电话号码以格式化 (###) ###-####,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com