【发布时间】:2017-12-02 04:12:02
【问题描述】:
我想以 XXX.X 格式快速从文本字段中读取文本。假设我的意思是 XXX.X 格式:
- 123.3 有效
- 48.2 有效
- 1.4 有效
- 4 有效
- 4.3.4 无效
- 5555.5 无效
- 123.34 无效
换句话说,句点左侧的文本最多只能有3个字符,如果用户没有输入“.”,则左侧的文本只能有1个字符或根本没有字符
目前,我的代码仅适用于限制“。”的数量
func textField(textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString string: String) -> Bool
{
let countdots = textField.text.components(separatedBy: ".").count)! - 1
if countdots > 0 && string == "."
{
return false
}
return true
}
【问题讨论】:
-
这是一个浮点数吗?如果是这样,那么使用逗号或其他字符而不是句点作为小数点分隔符的语言环境呢?
-
使用正则表达式
-
@rmaddy 是的,它是一个浮点数。事实上,我可以使用逗号或其他字符作为分隔符,但这不是我的问题。这里的问题是如何限制“。”右侧的字符数。 (或您提到的其他字符)和左侧的字符数。
-
将
return true替换为countdots.first.count <= 3就完成了
标签: ios swift uitextfield textfield