在开发 Swift 应用程序时,我有一个由用户填写的表单,我希望用户选择自己的用户名。我想要对用户名的唯一限制是:
- 没有特殊字符(例如@、#、$、%、&、*、(、)、^、、!、±)
- 只允许使用字母、下划线和数字
- 长度最多应为 18 个字符,最少为 7 个字符
在哪里可以找到验证输入字符串(函数参数)并根据上述条件返回 true 或 false 的函数?我不太精通正则表达式。
您可以使用
^\w{7,18}$
or
\A\w{7,18}\z
See the 正则表达式演示 https://regex101.com/r/xH3xX2/1
图案细节:
-
^
- 字符串的开头(可以替换为\A
确保字符串的开头仅匹配)
-
\w{7,18}
- 7 到 18 个单词字符(即任何Unicode字母、数字或下划线,如果只允许 ASCII 字母和数字,请使用[a-zA-Z0-9]
or [a-zA-Z0-9_]
反而)
-
$
- 字符串结尾(为了验证,我宁愿使用\z
相反,以确保字符串结尾仅匹配)。
SWIFT代码
请注意,如果您将其与NSPredicate
and MATCHES
,您不需要字符串锚点的开始/结束,因为默认情况下将锚定匹配:
func isValidInput(Input:String) -> Bool {
let RegEx = "\\w{7,18}"
let Test = NSPredicate(format:"SELF MATCHES %@", RegEx)
return Test.evaluateWithObject(Input)
}
否则,你不应该省略锚点:
func isValidInput(Input:String) -> Bool {
return Input.range(of: "\\A\\w{7,18}\\z", options: .regularExpression) != nil
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)