2017-11-16 13 views
1

I持ってPassword.123のためのオンライン正規表現テスターに​​正しく評価されたパスワードについては、以下の正規表現:私は迅速にNSRegularExpressionを行うとNSRegularExpression正しく評価しない

/(?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)(?!^[\\W]*$)(^[a-zA-Z0-9\\W]).{7,}/ 

それは間違って評価し、の一致を見つけることができませんPassword.123:

let password = "Password.123" 

let regex = try! NSRegularExpression(pattern: "/(?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)(?!^[\\W]*$)(^[a-zA-Z0-9\\W]).{7,}/", options: []) 

let range = NSRange(location: 0, length: password.count) 
print("Valid: \(regex.firstMatch(in: password, options: [], range: range) != nil)") 

これは偽を表示しますが、真である必要があります。どこが間違っていますか?

+1

あなたの文字列から '/'を削除しようとしましたか?私。 'let regex = try! NSRegularExpression(パターン: "(?!^ [0-9] * $)(?!^ [az] * $)(?!^ [AZ] * $)(?!^ [\\ W] * $)(^[a-zA-Z0-9 \\ W])。{7、} "、オプション:[])' –

+0

ああありがとう、それは – Stephen

+0

です。 –

答えて

2

文字列から/を削除します。私。

let regex = try! NSRegularExpression(pattern: "(?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)(?!^[\\W]*$)(^[a-zA-Z0-‌​9\\W]).{7,}", options: []) 
関連する問題