Swift 2 - 正则表达式验证用户名

时间:2015-11-19 10:40:05

标签: regex string swift2

我正在尝试使用swift中的Regex验证用户名。我找到了匹配字符串的方法,如果没有世界或数字字符,但是,我需要找到在正则表达式中添加表达式的方法,该表达式告诉我字符串长度介于2...15个字符范围之间

我该怎么做?

let name = Anthony 
if let match = name.rangeOfString("[\\W]|[\\d]{2,15}$", options: .RegularExpressionSearch) {
    print(match)
}

1 个答案:

答案 0 :(得分:1)

您可以使用^(?:[\\p{L}\\p{M}]|\\d){2,15}$匹配任何字符或数字为2到15个字符的字符串。

请注意,\p{L}与Unicode字母匹配,\p{M}与变音符号匹配。 \d将匹配一个数字。当我们将它们全部放入一个字符类时,我们匹配一个(预先组合的)字母或一个数字,2到15次。

  

如果字符串是< 2和> 15 -----!{2,15}

,表达式需要匹配

您可以使用"^(?:[\\p{L}\\p{M}]|\\d)$|^(?:[\\p{L}\\p{M}]|\\d){16,}$"

let name = "n"
let valid_block = "(?:[\\p{L}\\p{M}]|\\d)"
if let match = name.rangeOfString("^" + valid_block + "$|^" + valid_block + "{16,}$", options: .RegularExpressionSearch) {
    print(match)
}

请参阅SWIFT code demo