2017-01-30 2 views
1

ich, dass Regex String:Android Regex Türkisch Charachter Nicht Erlaubt (i, s, ö ...)

final String regexStr = "^[a-zA-Z ]+$"; 

Aber ich mich nicht schreiben kann, ö, ü ... Aber ich kann u , i, u ...

TextChangedListener:

 txtSicilAdi.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void afterTextChanged(Editable s) 
     { 
      String text = txtSicilAdi.getText().toString(); 
      if (text.length() > 0) { 
       if (!text.substring(text.length() - 1).matches(regexStr)) 
       { 
        txtSicilAdi.setText(text.substring(0, text.length() - 1)); 
        txtSicilAdi.setSelection(txtSicilAdi.length()); 
       } 
      } 
     } 
     @Override 
     public void onTextChanged(CharSequence s, int st, int b, int c){ } 
     @Override 
     public void beforeTextChanged(CharSequence s, int st, int c, int a){ } 
    }); 
+2

Sie können versuchen, '^ [\ p {L}] + $' – Niitaku

+0

das funktioniert ist. Vielen Dank. – mobileprogramming

+0

Ich habe es als Antwort gepostet. Wenn es Ihr Problem immer noch löst, können Sie [akzeptieren] (http://meta.stackoverflow.com/a/251399/6403828). Es wird anderen Menschen mit derselben Frage helfen, die von Ihnen gewählte Lösung zu finden. – Niitaku

Antwort

1

Um alle Buchstaben und nicht nur nicht akzentuierte zu berücksichtigen, können Sie \p{L} verwenden.

Ihre regex sollte dann wie folgt aussehen:

^[\p{L} ]+$ 
+0

interessant, wusste nicht über '\ p {L}'. Nachdem ich die Dokumente gelesen habe, füge ich '\ p {M}' hinzu, um Buchstaben mit Markierungen auf ihnen zu vergleichen. – tfidelis

+0

@tfidelis Ich wusste nicht über '\ p {M}'. Ich bin mir nicht sicher, dass es nötig ist. Welche Zeichen kann man hinzufügen? – Niitaku

1

versuchen Sie dies:

final String regexStr = "^[a-zA-Z0-9ığüşöçİĞÜŞÖÇ ]+$"; 
+0

Das funktioniert, aber ich kann nur wenig "ı" nicht schreiben. Beispiel: "pıtır" – mobileprogramming

+0

@mobileprogramming Ich habe das Zeichen "ı" in Regex hinzugefügt. – tfidelis

Verwandte Themen