2014-04-22 16 views
16

के लिए एंड्रॉइड में नियमित अभिव्यक्ति मैं EditText को Regex के साथ विशेष वर्णों की अनुमति देकर कैसे सत्यापित कर सकता हूं। मेरे शर्त है:पासवर्ड फ़ील्ड

पासवर्ड नियम:

  1. एक बड़े अक्षर
  2. एक नंबर
  3. एक प्रतीक(@,$,%,&,#,) जो कुछ सामान्य प्रतीकों कि स्वीकार्य हैं।

    क्या मुझे पता है कि मेरे उद्देश्य को प्राप्त करने का सही तरीका क्या है?

+1

न्यूनतम लंबाई? –

उत्तर

47

इस मई में मदद करता है

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{4,}$ 

यह कैसे काम करता प्रयास करें:

मैं तुम्हें उपयोग का एक उदाहरण दे सकता है?

^     # start-of-string 
(?=.*[0-9])  # a digit must occur at least once 
(?=.*[a-z])  # a lower case letter must occur at least once 
(?=.*[A-Z])  # an upper case letter must occur at least once 
(?=.*[@#$%^&+=]) # a special character must occur at least once you can replace with your special characters 
(?=\\S+$)   # no whitespace allowed in the entire string 
.{4,}    # anything, at least six places though 
$     # end-of-string 

कैसे लागू करने के लिए?

public class MainActivity extends Activity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final EditText editText = (EditText) findViewById(R.id.edtText); 
     Button btnCheck = (Button) findViewById(R.id.btnCheck); 

     btnCheck.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       if (isValidPassword(editText.getText().toString().trim())) { 
        Toast.makeText(MainActivity.this, "Valid", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(MainActivity.this, "InValid", Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

    } 

    public boolean isValidPassword(final String password) { 

     Pattern pattern; 
     Matcher matcher; 

     final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{4,}$"; 

     pattern = Pattern.compile(PASSWORD_PATTERN); 
     matcher = pattern.matcher(password); 

     return matcher.matches(); 

    } 

} 
+0

उत्तर देने का कारण दें –

+0

पता नहीं। कोई अज्ञात व्यक्ति शायद ऐसा करता है। मैंने आपका जवाब स्वीकार कर लिया। कृपया इस सवाल को वोट दें। हैप्पी कोडिंग –

+1

मैंने पहले से ही आपके प्रश्न को उजागर किया है –

5

इसे आजमाएं।

(/^(?=.*\d)(?=.*[A-Z])([@$%&#])[0-9a-zA-Z]{4,}$/) 


(/^ 
(?=.*\d)    //should contain at least one digit 
(?=.*[@$%&#])   //should contain at least one special char 
(?=.*[A-Z])    //should contain at least one upper case 
[a-zA-Z0-9]{4,}   //should contain at least 8 from the mentioned characters 
$/) 
+1

कृपया उत्तर देने के लिए कारण दें? –

+0

मुझे बहुत खेद है। कोई व्यक्ति मेरे प्रश्नों को वोट देता है और सभी जवाब शामिल करता है। मैंने यह नहीं किया। मैंने आपके जवाब को वोट दिया। कृपया इस सवाल को वोट दें। –

+1

मैंने अप-वोट किया है। –

1

आप हर जाँच प्रारूप के लिए Matcher से वर्ग Patern उपयोग कर सकते हैं।

 Pattern pattern = Pattern.compile("[email protected]+\\.[a-z]+"); 
     Matcher matcher = pattern.matcher(myEmailString); 
     if (!myEmailString.contains("@") || !matcher.matches()) { 
      // error in the email : do staff 
      myEmailView.setError("invalid email !"); 

     } 
+0

शून्य के लिए Thx ... अगली बार कहते हैं, "यह नहीं है कि मैं किसके लिए देख रहा हूं!"। मुझे वास्तव में खेद है अगर मुझे आपके प्रश्न को अच्छी तरह से समझ में नहीं आया ... –

2
try { 
    if (subjectString.matches("^(?=.*[@$%&#_()=+?»«<>£§€{}\\[\\]-])(?=.*[A-Z])(?=.*[a-z])(?=.*\\d).*(?<=.{4,})$")) { 
     // String matched entirely 
    } else { 
     // Match attempt failed 
    } 
} catch (PatternSyntaxException ex) { 
    // Syntax error in the regular expression 
} 


(?=.*[@\$%&#_()=+?»«<>£§€{}.[\]-]) -> must have at least 1 special character 
(?=.*[A-Z]) -> Must have at least 1 upper case letter 
(?=.*[a-z]) -> Must have at least 1 lower case letter 
(?=.*\\d)  -> Must have at least 1 digit 
(?<=.{4,})$") -> Must be equal or superior to 4 chars. 
संबंधित मुद्दे