【问题标题】:How to check if text in a UITextField matches a specific pattern?如何检查 UITextField 中的文本是否与特定模式匹配?
【发布时间】:2012-08-02 01:22:50
【问题描述】:

我有一个 UITextField,当用户键入时,我需要检查他们迄今为止在文本字段中输入的文本是否与特定模式匹配。

更具体地说,我需要文本匹配 ####-##-## 模式,其中 # 是 0-9 的任意数字,- 是破折号(请注意,这不是电话号码或电子邮件)。例如,条目 1990-12-09 匹配,1990:12:09 不匹配,1990-12 DOES 匹配,因为它尚未违反模式(即使文本尚未完全匹配模式)。

我应该如何处理这个问题?理想情况下,我不必在一系列 if 语句中硬编码。

困难在于我想检查文本字段中的文本是否与此模式匹配,当用户键入时。我不想只在最后检查它。

我认为正则表达式可能是一种方法,但我对它们的经验还不够,无法知道它们是否能解决问题。

【问题讨论】:

  • 可以写一个匹配整个东西的正则表达式,但最好根据-对输入进行token化,然后使用regex检查每个token。
  • 为什么不让用户输入数字为######## 并根据需要动态添加-。

标签: objective-c ios regex


【解决方案1】:

您可以将键盘类型设置为myTextField.keyboardType = UIKeyboardTypeNumberPad,这就是您限制输入类型的原因。

那么这篇文章应该有助于回答您的格式问题:UITextField format in xx-xx-xxx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多