-1

My requirement is of "Minimum eight characters, at least one uppercase letter, one lowercase letter, one number and one special character" and the below code is giving me false.

 var pattern = new RegExp('/^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$/');
    var value = 'Abcde@12345';
    var message = '';
    
    if(value !==undefined ){
        
        
        if(!pattern.test(value)){
          
           console.log(false);
        }
        else{
           console.log(true);
        }
    }

Please suggest me any better solution for my requirment

freedomn-m
  • 27,664
  • 8
  • 35
  • 57

1 Answers1

0

You are mixing strings with regex with new RegExp, Simply use this:

var pattern = /^(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=\D*\d)(?=[\w\s]*[^\w\s])\S{8,}$/;
Aly Mobarak
  • 356
  • 2
  • 17