Need regular expression for checking at least 3 uppercase, 3 lowercase, 3 digits and 3 special character

前端 未结 3 1712
天命终不由人
天命终不由人 2021-01-19 06:22

Need regular expression for checking at least 3 uppercase, 3 lowercase, 3 digits and 3 special character any where in string.

I have tried /^(?=.*[^A-Za-z0-9]

3条回答
  •  渐次进展
    2021-01-19 06:48

    You were close: you need to bracket the .* with the character classes in your look aheads:

    ^(?=(.*[^A-Za-z0-9]){3})(?=(.*[A-Z]){3})(?=(.*\d){3}).+
    

    The reason this works is that the character types may not be adjacent, eg 3 digits might be a1b2c3, hence the .* to allow other intervening character types.

    Note that you don't need the open-ended quantifiers. eg (.*\d){3} is sufficient to assert that there are at least 3 digits - ie not ...{3,}


    And a final note: those leading/trailing slashes have nothing whatsoever to do with regular expressions - they are an application language artefact. It makes questions and answers clearer and more useful to more people if they are omitted.

提交回复
热议问题