簡體   English   中英

正則表達式用於驗證Android中的EditText

[英]Regex for validating EditText in Android

我正在嘗試驗證TextView,使其只能包含字母和。

到目前為止,我所做的是它不允許有空格,並且不能將其留為空白,因此如何繼續進行,不允許使用數字和特殊字符。

              if (PatientInitials.getText().toString().equals(""))
              {
                  final Toast toast = Toast.makeText(getApplicationContext(), "Please enter the patient initials.", Toast.LENGTH_SHORT);
                    toast.show();
                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                       @Override
                       public void run() {
                           toast.cancel(); 
                       }
                }, 3000);
              }
              else if (PatientInitials.getText().toString().matches(".*([ \t]).*"))
              {
                  final Toast toast = Toast.makeText(getApplicationContext(), "Patient initials cannot contain spaces.", Toast.LENGTH_SHORT);
                    toast.show();
                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                       @Override
                       public void run() {
                           toast.cancel(); 
                       }
                }, 3000);
              }
                      //Below doesn't work
              else if (PatientInitials.getText().toString().matches("/^[A-z]+$/"))
              {
                  final Toast toast = Toast.makeText(getApplicationContext(), "Patient initials cannot contain numbers and special characters.", Toast.LENGTH_SHORT);
                    toast.show();
                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {
                       @Override
                       public void run() {
                           toast.cancel(); 
                       }
                }, 3000);

嘗試這個 :

            EditText state = (EditText) findViewById(R.id.txtState);
            Pattern ps = Pattern.compile("^[a-zA-Z ]+$");
            Matcher ms = ps.matcher(state.getText().toString());
            boolean bs = ms.matches();
            if (bs == false) {
                if (ErrorMessage.contains("invalid"))
                    ErrorMessage = ErrorMessage + "state,";
                else
                    ErrorMessage = ErrorMessage + "invalid state,";
            }

希望這可以幫助。

您是否看過android:digits搶先僅將某些字符列入白名單?

另請參閱: https : //stackoverflow.com/a/6082975/452383

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM