【发布时间】:2019-06-21 15:00:04
【问题描述】:
我正在尝试将自定义 ORKTextAnswerFormat 合并到我的应用程序中,并且只允许用户输入字母数字字符。我只想要大写/小写字母和数字 - 没有符号或重音字母。
例如不应允许他们输入“示例!”,因为它包含感叹号。
目前我尝试过的代码如下:
// REGEX
let linkRegexPattern = "[^a-zA-Z0-9]"
let linkRegex = try! NSRegularExpression(pattern: linkRegexPattern,
options: .caseInsensitive)
// CUSTOM STEP TO INPUT PATIENT ID
let patientidTitle = "Patient ID"
let patientidQuestion = "Enter the Patient ID provided to you by the hospital."
let patientidAnswerFormat = ORKTextAnswerFormat(validationRegularExpression: linkRegex, invalidMessage: "INVALID")
patientidAnswerFormat.maximumLength = 20
patientidAnswerFormat.multipleLines = false
let patientidStep = ORKQuestionStep(identifier: "patientIDstep", title: patientidTitle, question: patientidQuestion, answer: patientidAnswerFormat)
patientidStep.isOptional = false
但是,在输入上述示例后,我可以按下一步并继续下一个问题/步骤,而不会引发任何错误。我希望它在输入合适之前不允许我继续。
我怎样才能做到这一点?
编辑:
如果我输入“测试”,它会提醒说它是无效的。但是,输入“测试!”让我继续。
【问题讨论】:
-
试试
let linkRegexPattern = "^[a-zA-Z0-9]*$",或者更好的是"^[a-zA-Z0-9]*\\z"。 -
后一个建议似乎效果很好,谢谢!
标签: ios swift regex researchkit