How to implement a regex for password validation in Swift?

前端 未结 6 1458
刺人心
刺人心 2020-12-22 16:18

I want to implement a regex validaton for passwords in Swift? I have tried the following regex, but not successful

([(0-9)(A-Z)(!@#$%ˆ&*+-=<>)]+)([         


        
相关标签:
6条回答
  • 2020-12-22 16:55

    try with this one for Password must be more than 6 characters, with at least one capital, numeric or special character

    ^.*(?=.{6,})(?=.*[A-Z])(?=.*[a-zA-Z])(?=.*\\d)|(?=.*[!#$%&? "]).*$

    ^ assert position at start of the string
    .* matches any character (except newline)
    Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
    (?=.{6,}) Positive Lookahead - Assert that the regex below can be matched
    .{6,} matches any character (except newline)
    Quantifier: {6,} Between 6 and unlimited times, as many times as possible, giving back as needed [greedy]
    (?=.*[A-Z]) Positive Lookahead - Assert that the regex below can be matched
    .* matches any character (except newline)
    Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
    [A-Z] match a single character present in the list below
    A-Z a single character in the range between A and Z (case sensitive)
    (?=.*[a-zA-Z]) Positive Lookahead - Assert that the regex below can be matched
    .* matches any character (except newline)
    Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
    [a-zA-Z] match a single character present in the list below
    a-z a single character in the range between a and z (case sensitive)
    A-Z a single character in the range between A and Z (case sensitive)
    (?=.*\\d) Positive Lookahead - Assert that the regex below can be matched
    .* matches any character (except newline)
    Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
    \d match a digit [0-9]
    2nd Alternative: (?=.*[!#$%&? "]).*$
    (?=.*[!#$%&? "]) Positive Lookahead - Assert that the regex below can be matched
    .* matches any character (except newline)
    Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
    [!#$%&? "] match a single character present in the list below
    !#$%&? " a single character in the list !#$%&? " literally (case sensitive)
    .* matches any character (except newline)
    Quantifier: * Between zero and unlimited times, as many times as possible, giving back as needed [greedy]
    $ assert position at end of the string
    

    https://regex101.com/#javascript

    more this you can try ....

    Minimum 8 characters at least 1 Alphabet and 1 Number:

    "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$"
    

    Minimum 8 characters at least 1 Alphabet, 1 Number and 1 Special Character:

    "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,}$"
    

    Minimum 8 characters at least 1 Uppercase Alphabet, 1 Lowercase Alphabet and 1 Number:

    "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d]{8,}$"
    

    Minimum 8 characters at least 1 Uppercase Alphabet, 1 Lowercase Alphabet, 1 Number and 1 Special Character:

    "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[d$@$!%*?&#])[A-Za-z\\dd$@$!%*?&#]{8,}"
    

    Minimum 8 and Maximum 10 characters at least 1 Uppercase Alphabet, 1 Lowercase Alphabet, 1 Number and 1 Special Character:

    "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*?&#])[A-Za-z\\d$@$!%*?&#]{8,10}"
    
    0 讨论(0)
  • 2020-12-22 16:55
    public func isValidPassword() -> Bool {
        let passwordRegex = "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*()\\-_=+{}|?>.<,:;~`’]{8,}$"
        return NSPredicate(format: "SELF MATCHES %@", passwordRegex).evaluate(with: self)
    }
    

    If you need a quick fix. This is validation for a password with regex. Copy/paste in helper or extension file and use it.

    0 讨论(0)
  • 2020-12-22 16:59

    The regex is

    (?:(?:(?=.*?[0-9])(?=.*?[-!@#$%&*ˆ+=_])|(?:(?=.*?[0-9])|(?=.*?[A-Z])|(?=.*?[-!@#$%&*ˆ+=_])))|(?=.*?[a-z])(?=.*?[0-9])(?=.*?[-!@#$%&*ˆ+=_]))[A-Za-z0-9-!@#$%&*ˆ+=_]{6,15}
    
    0 讨论(0)
  • 2020-12-22 17:00
    func isValidPassword() -> Bool {
        // least one uppercase,
        // least one digit
        // least one lowercase
        // least one symbol
        //  min 8 characters total
        let password = self.trimmingCharacters(in: CharacterSet.whitespaces)
        let passwordRegx = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&<>*~:`-]).{8,}$"
        let passwordCheck = NSPredicate(format: "SELF MATCHES %@",passwordRegx)
        return passwordCheck.evaluate(with: password)
    
    }
    
    0 讨论(0)
  • 2020-12-22 17:07

    You can use Regex for check your password strength

    ^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$
    

    Regex Explanation : -

    ^                         Start anchor
    (?=.*[A-Z].*[A-Z])        Ensure string has two uppercase letters.
    (?=.*[!@#$&*])            Ensure string has one special case letter.
    (?=.*[0-9].*[0-9])        Ensure string has two digits.
    (?=.*[a-z].*[a-z].*[a-z]) Ensure string has three lowercase letters.
    .{8}                      Ensure string is of length 8.
    $                         End anchor.
    

    Source - Rublar Link

    0 讨论(0)
  • 2020-12-22 17:09
    func validpassword(mypassword : String) -> Bool 
        {    
    
            let passwordreg =  ("(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z])(?=.*[@#$%^&*]).{8,}")
            let passwordtesting = NSPredicate(format: "SELF MATCHES %@", passwordreg)
            return passwordtesting.evaluate(with: mypassword)       
        }
    
     @IBOutlet weak var password_textfield: UITextField! //create a Password text field IBOutlet
    
    @IBAction func login_btton(_ sender: UIButton) { //Click & Call to Login Button
    
    
    let password = validpassword(mypassword: password_textfield.text!) //get text Field data & checked through the function
    
    
            if(password == false)
            {
                 print("Valid Password")  //Use to Alert Msg Box 
            }
            else
            {
                 print("Login Safe")     //Use to Alert Msg Box 
            }
        }
    ## Function Use to validation is password and confirm password is same, Password must have more then some characters , Password contain some special character , Password must one digit , Password must one uppercase letter ## 
    0 讨论(0)
提交回复
热议问题