使用表单验证

时间:2017-07-10 07:24:36

标签: ios swift

我正在开发一个iOS应用,我要求用户输入没有特殊字符的用户名。

我需要帮助创建一个函数来验证文本字段只接受字母,数字和下划线。当将其实现到注册Button动作时,我想调用该函数并为验证添加if case。

有人可以告诉我该怎么做?我在网上尝试了其他方法,但它们似乎已经过时,对我来说没什么用。

3 个答案:

答案 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

}