Voglio rilevare se il mio edittext
ha caratteri inglesi e avvisare l'utente di cambiarlo perché voglio solo caratteri persiani per nome e cognome. come posso filtrare edittext
per accettare solo caratteri persiani o rilevare caratteri inglesi e mostrare un errore?Come rilevare se edittext ha caratteri inglesi
risposta
Penso che non sia facile da rilevare e informare l'utente di istruire. Semplicemente puoi fare qualcosa del genere. Nel file XML:
<EditText
android:id="@+id/LanguageText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text"
android:digits="@string/app_lan" />
In strings.xml:
<string name="app_lan">YOUR LANGUAGE</string>
Esempio Se l'inglese:
<string name="app_lan">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</string>
Per ur linguaggio stesso come questo.
I caratteri persiani rientrano nell'intervallo: [\u0600-\u06FF]
. Convalida la tua stringa con regex.
public final static String PERSIAN_STRING = "ا آ ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی";
public final static String LATIN_STRING = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
if (PERSIAN_STRING.contains(str.toLowerCase()))
lang = "PERSIAN";
if (LATIN_STRING.contains(str.toLowerCase()))
lang = "LATIN";
Cosa succede se il testo contiene questi: áéíóúçñ ¢ £ – Renan
@ Renan e sono caratteri inglesi validi? – user902383
Essi sono. L'inglese ha parole come "resumé", "fidanzato" ecc. – Renan
Riassumendo un paio di cose qui. Poiché, @Sergei Podlipaev ha rilevato che i caratteri persiani sono compresi nell'intervallo \u0600
a \u06FF
, è possibile utilizzare espressioni regolari. Non sono sicuro se sto specificando correttamente i limiti, ma questo ti darà un'idea.
per vedere se viene utilizzato il set di caratteri inglese - ^[a-zA-Z0-9]*$
per vedere se viene utilizzato il set di caratteri Persico - ^[\u0600-\u06FF]+$
Provare la seguente espressione regolare Persico caratteri variano.
public static final Pattern RTL_CHARACTERS =
Pattern.compile("[\u0600-\u06FF\u0750-\u077F\u0590-\u05FF\uFE70-\uFEFF]");
Matcher matcher = RTL_CHARACTERS.matcher("Texts");
if(matcher.find()){
return true; // it's RTL
}
O utilizzare questo metodo.
public static boolean textPersian(String s) {
for (int i = 0; i < Character.codePointCount(s, 0, s.length()); i++) {
int c = s.codePointAt(i);
if (c >= 0x0600 && c <=0x06FF || c== 0xFB8A || c==0x067E || c==0x0686 || c==0x06AF)
return true;
}
return false;
- 1. Come memorizzare caratteri non inglesi?
- 2. Iniezione di caratteri non inglesi su Android
- 3. Come rilevare se l'elemento ha altezza 'auto'
- 4. Come verificare se EditText ha un valore in Android/Java
- 5. Java codifica elettronica caratteri non inglesi
- 6. rimuovere i caratteri non inglesi PHP
- 7. rilevare se il contatto ha foto
- 8. Caratteri speciali non inglesi in knitr
- 9. PHP Curl post con caratteri non inglesi
- 10. Abilitazione soundex/metaphone per caratteri non inglesi
- 11. Come rilevare se una stringa contiene caratteri speciali?
- 12. getUserMedia - come rilevare se il dispositivo ha effettivamente una fotocamera
- 13. come rilevare se l'utente ha un'app in Cocoa
- 14. Come rilevare se l'utente ha fatto clic sul pulsante "Indietro"
- 15. Come posso rilevare se un'unità ha un cestino in C#?
- 16. Come rilevare se l'iPhone ha un display retina o no?
- 17. Come confrontare i caratteri non inglesi con accenti
- 18. Come rilevare se gli utenti smettono di digitare in EditText android
- 19. Come posso scrivere caratteri non inglesi come caratteri arabi o persiani in un'immagine?
- 20. NSURL URLWithString: è nullo con i caratteri accentati non inglesi
- 21. Come determinare se una stringa ha caratteri non alfanumerici?
- 22. Un indirizzo email può contenere caratteri internazionali (non inglesi)?
- 23. Come posso rilevare caratteri non occidentali?
- 24. mappatura dei caratteri in EditText Android
- 25. Come posso rilevare se un evento tattile è atterrato in un EditText?
- 26. Come convertire i caratteri turchi in caratteri inglesi in una stringa?
- 27. Rilevare se l'utente ha nella barra di stato della chiamata
- 28. decodifica permutati inglesi Strings
- 29. Rileva stringhe con caratteri non inglesi in Python
- 30. È possibile rilevare se un telefono Android ha una trackball?
Pur avendo tag diversi, questa domanda è un possibile duplicato di [Regex per il controllo la stringa di input è solo in lingua persiana] (http://stackoverflow.com/questions/10561590/regex-for-check -the-input-string-is-just-in-persian-language) - poiché l'unica parte rilevante è l'espressione regolare implicata. – Renan
@Amir_P Puoi incollare il codice pls? –
controllare il testo di modifica con stringhe A-z e a-z con l'aiuto delle stringhe Regx su textchangelistner –