2017-05-25 38 views
1

密碼驗證我想在此添加密碼驗證,但在得到它得到的問題,我希望有一個密碼模式其中包括一些ATLEAST (number of characters, special characters, lowercase letters, uppercase letters) 這種模式。但我無法實現這一點,請幫助。如何實現機器人

我使用過Android Studio

public class SignUp extends MainActivity { 
    private EditText et_name, et_email, et_password, et_cpassword; 
    private String name, email, password, cpassword; 
    Button signupbtn; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.sign_up_form); 
    et_name = (EditText) findViewById(R.id.name); 
    et_email = (EditText) findViewById(R.id.Email); 
    et_password = (EditText) findViewById(R.id.Password); 
    et_cpassword = (EditText) findViewById(R.id.Confirm_Password); 
    signupbtn = (Button) findViewById(R.id.Signbtn); 
    signupbtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      register(); 
     } 
    }); 
} 

public void register() { 
    initialise(); 
    if (!validate()) { 
     Toast.makeText(this, "Sign up Failed", Toast.LENGTH_SHORT).show(); 
    } else { 
     onSignUpSuccess(); 
    } 
} 

public void onSignUpSuccess() { 
    Intent intent = new Intent(SignUp.this, HomePage.class); 
    startActivity(intent); 
    finish(); 
} 

public boolean validate() { 
    boolean valid = true; 
    if (name.isEmpty() || name.length() > 32) { 
     et_name.setError("please enter valid name"); 
     valid = false; 
    } 
    if (email.isEmpty() || !Patterns.EMAIL_ADDRESS.matcher(email).matches()) { 
     et_email.setError("please enter valid Email"); 
     valid = false; 
    } 
    if (password.isEmpty()) 
     et_password.setError("please enter a valid password"); 
    return valid; 
} 
public void initialise(){ 
    name = et_name.getText().toString().trim(); 
    email = et_email.getText().toString().trim(); 
    password = et_password.getText().toString().trim(); 
    cpassword = et_cpassword.getText().toString().trim(); 
} 
} 
+0

不知道如果這兩個選項幫助,但看看那些:https://docs.djangoproject.com/en/1.11/topics/signals/(如JS中的事件)和https://docs.python.org/2/library/io.html – oneturkmen

+0

以最初的想法實時獲取數據需要一個XMLHTTP請求,使用vanilla javascript可能會產生問題,因爲每個瀏覽器都有自己的如何創建XMLHTTP請求的「想法」。 – Raptus

回答

1

最簡單的方法是使用輪詢。 因此,實際上你可以通過JavaScript設置一個時間間隔,並在該時間間隔內向服務器啓動AJAX請求以獲取數據,如果需要,因爲數據已更改,只需刷新表格即可。 因此,像這樣在JS:

// interval of one minute 
setInterval(function() { 
    // starts the AJAX request 
    // get the response 
// if something has changed, update the table 
}, 60 * 1000); 

即使這是最簡單的方法,它實際上不是最好的,因爲你將不得不將始終啓動請求到服務器的功能,即使在任何反應。

最好的解決方案是設置Web套接字並在某些數據發生變化時直接從服務器接收通知。

看來你也已經使用Django做什麼,但我不是這方面的專家,所以也許你可以看看這篇文章:

https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django