首页 > 解决方案 > Android vs JS:库验证

问题描述

JS 有 lib 验证:验证器https://www.npmjs.com/package/validator

Android有类似的东西吗?Android 的库名称是什么?

标签: javascriptandroidvalidation

解决方案


您可以使用

android:inputType="textPersonName"

在您的 EditText 中转换为 xml 布局文件

如果你想在 java 中使用验证器,你可以使用

public class MainActivity extends AppCompatActivity implements Validator.ValidationListener {

@NotEmpty
@Length(min = 3, max = 10)
private EditText editTextUsername;

@NotEmpty
@Password
@Pattern(regex = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})")
private EditText editTextPassword;

@ConfirmPassword
private EditText editTextConfirmPassword;

@NotEmpty
@Pattern(regex =  "^\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})$")
private EditText editTextPhone;

@Min(18)
@Max(120)
private EditText editTextAge;

@NotEmpty
@Email
private EditText editTextEmail;

@Url
private EditText editTextWebsite;

@Checked
private CheckBox checkBoxAgree;

private Button buttonSave;

private Validator validator;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    validator = new Validator(this);
    validator.setValidationListener(this);
}

private void initView() {
    editTextUsername = findViewById(R.id.editTextUsername);
    editTextPassword = findViewById(R.id.editTextPassword);
    editTextConfirmPassword = findViewById(R.id.editTextConfirmPassword);
    editTextAge = findViewById(R.id.editTextAge);
    editTextPhone = findViewById(R.id.editTextPhone);
    editTextEmail = findViewById(R.id.editTextEmail);
    editTextWebsite = findViewById(R.id.editTextWebsite);
    checkBoxAgree = findViewById(R.id.checkBoxAgree);
    buttonSave = findViewById(R.id.buttonSave);
    buttonSave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            buttonSave_onClick(view);
        }
    });
}

private void buttonSave_onClick(View view) {
    validator.validate();
    String username = editTextUsername.getText().toString();
    if (username.equalsIgnoreCase("pmk")) {
        editTextUsername.setError(getText(R.string.username_already_exists));
    }
}

@Override
public void onValidationSucceeded() {
    Toast.makeText(this, "We got it right!", Toast.LENGTH_SHORT).show();
}

@Override
public void onValidationFailed(List<ValidationError> errors) {
    for (ValidationError error : errors) {
        View view = error.getView();
        String message = error.getCollatedErrorMessage(this);
        // Display error messages
        if (view instanceof EditText) {
            ((EditText) view).setError(message);
        } else {
            Toast.makeText(this, message, Toast.LENGTH_LONG).show();
        }
    }
}

}


推荐阅读