derzeit Mein Benutzername Validierung ermöglicht nur Ober- und/oder Kleinbuchstaben, aber ich möchte unterstützen:Java/Android Regex Ausdruck Namen zu ermöglichen, die Apostroph und/oder Bindestrich können
Regular Namen wie „James Bond "OR Montagu-Stuart-Wortley-Mackenzie OR De'wayne OR De 'wayne (man beachte den Raum nach Apostroph) OR M'ontagu-S'tuart-W'ortley-M' ackenzie (space , Apostroph und Bindestrich erlaubt)
Hier ist der aktuelle Code:
private void checkFirstNameInput(){
String firstName = edtFirstName.getText().toString();
Pattern p = Pattern.compile("[^A-Za-z]");
Matcher matcherFirstName = p.matcher(firstName);
boolean firstNameValid = firstName.trim().length() >= 1 && !matcherFirstName.find();
if(firstNameValid){
edtFirstName.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context, R.drawable.check_icon), null);
edtFirstName.setBackground(ContextCompat.getDrawable(context, R.drawable.textfield_gray));
APrefs.registeringUser.setFirstName(edtFirstName.getText().toString().trim());
}else{
edtFirstName.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
edtFirstName.setBackground(ContextCompat.getDrawable(context, R.drawable.textfield_gray));
}
txtError.setVisibility(View.GONE);
checkNextButton();
}
Ich versuchte^[a-zA-Z '-] $ und auch andere Beiträge suchen, aber keinen Erfolg.
Danke & sehr geschätzt. diese
dieses Muster Versuchen: 'Muster p = Pattern.compile ("[\\ p {L} '-] +"); 'und benutze' .matches() ' – anubhava