Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何检查UITextField中的文本是否与特定模式匹配?_Objective C_Ios_Regex - Fatal编程技术网

Objective c 如何检查UITextField中的文本是否与特定模式匹配?

Objective c 如何检查UITextField中的文本是否与特定模式匹配?,objective-c,ios,regex,Objective C,Ios,Regex,我有一个UITextField,当用户键入时,我需要检查他们在textfield中输入的文本是否与特定模式匹配 更具体地说,我需要文本匹配模式######-##-##,其中#是任何数字0-9,-是破折号(请注意,这不是电话号码或电子邮件)。例如,条目1990-12-09匹配,1990:12:09不匹配,1990-12匹配,因为它尚未违反模式(即使文本尚未完全匹配模式) 我应该如何处理这个问题?理想情况下,我不必在一系列if语句中硬编码 困难在于,当用户键入时,我想检查textfield中的文本是

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

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

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

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


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

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


然后,这篇文章应该可以帮助回答您的格式问题:

可以编写一个与整个内容匹配的正则表达式,但是最好根据
-
对输入进行标记,然后使用正则表达式检查每个标记。为什么不让用户根据需要动态地输入数字呢。