我正在开发一个iOS应用,我要求用户输入没有特殊字符的用户名。
我需要帮助创建一个函数来验证文本字段只接受字母,数字和下划线。当将其实现到注册Button动作时,我想调用该函数并为验证添加if case。
有人可以告诉我该怎么做?我在网上尝试了其他方法,但它们似乎已经过时,对我来说没什么用。
答案 0 :(得分:0)
您可以使用正则表达式解决此问题。
你只需要一个字母,数字和下划线的字符串,没有其他内容,所以这个正则表达式就足够了:
^[\w]+$
您可以使用以下代码编写:
let regex = try! NSRegularExpression(pattern: "^[\\w]+$", options: [])
if regex.firstMatch(in: yourTextField.text!, options: [], range: NSRange(location: 0, length: yourTextField.text!.characters.count)) != nil {
// the string is valid
}
答案 1 :(得分:0)
func checkUsername(str: String) -> Bool
{
do
{
let regex = try NSRegularExpression(pattern: "^[0-9a-zA-Z\\_]{7,18}$", options: .CaseInsensitive)
if regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count)).count > 0 {return true}
}
catch {}
return false
}
答案 2 :(得分:0)
在Swift 3.0中,试试这个
函数验证(strValue:String) - >布尔{
let aSet = NSCharacterSet(charactersIn:"^[0-9a-zA-Z\\_]{7,18}$").inverted
let compSepByCharInSet = string.components(separatedBy: aSet)
let numberFiltered = compSepByCharInSet.joined(separator: "")
return string == numberFiltered
}