如何验证ussd代码以进行余额检查

Mad*_*vat 5 validation android android-edittext

如何在发送之前验证在edittext中输入的USSD代码

在这里,我把一些代码请帮助我.

ussd_edittext.addTextChangedListener(new TextWatcher() 
{
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                ussd_edittext.setError("Invalid password");
                ussd_ok.setEnabled(false);
            }
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                if (ussd_edittext.getText().toString().trim().replaceAll("[^0-9#*]", "").length() < 4) {
                    ussd_edittext.setError("USSD code must contain * and #");
                    ussd_ok.setEnabled(false);
                }
            }
            public void afterTextChanged(Editable s) {
                Character cr = s.toString().charAt(0);
                if(s.length() < 1)
                {
                    if(!( (cr == '*') ) )
                    {   ussd_edittext.setError("USSD code must contain * and #");
                        ussd_ok.setEnabled(false);
                    }
                    else {
                        ussd_ok.setEnabled(true);
                    }
                }
                else
                {
                    String lc = s.toString().substring(0, ussd_edittext.length() - 1);
                    if(!( (cr == '*') && lc.equals("#") ) )
                    {
                        ussd_edittext.setError("USSD code must contain * and #");
                        ussd_ok.setEnabled(false);
                    }
                    else {
                        ussd_ok.setEnabled(true);
                    }
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

我想验证它必须包含*和#也最少5位数.

Ash*_*mar 0

这可能有帮助:

if (Pattern.matches("(\\*[0-9]+[\\*[0-9]+]*#)", ussd_edittext.getText().toString()) && ussd_edittext.length() >= 5) {
        //USSD code is valid
    } else {
        //USSD code is not valid
    }
Run Code Online (Sandbox Code Playgroud)