2017-05-25 39 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