This is a simple example in Android to allow only valid characters to enter in a textBox or EditText.
I am using this regex pattern to allow only valid characters.
“^[a-z_A-Z0-9 ]*$”;
This expression allows only characters from a-z, A-Z and numbers from 0-9 and a ‘ ‘(space) character.
Here is the java code
package pack.coderzheaven; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class RegexDemo extends Activity { EditText tbox; Button but; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tbox = (EditText)findViewById(R.id.EditText01); but = (Button)findViewById(R.id.Button01); but.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(isValid(tbox.getText().toString().trim())){ Toast.makeText(getApplicationContext(), "Text entered is OK.", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(getApplicationContext(), "Oops!! Text entered is Invalid.", Toast.LENGTH_SHORT).show(); } } }); } public static boolean isValid(String str) { boolean isValid = false; String expression = "^[a-z_A-Z0-9 ]*$"; CharSequence inputStr = str; Pattern pattern = Pattern.compile(expression); Matcher matcher = pattern.matcher(inputStr); if(matcher.matches()) { isValid = true; } return isValid; } }
Main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <EditText android:text="" android:hint="enter some text" android:id="@+id/EditText01" android:layout_width="fill_parent" android:layout_height="wrap_content"> </EditText> <Button android:text="Test" android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout>
Strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Regex invalid character validation from <b>CoderzHeaven.</b></string> <string name="app_name">Regex Validation Demo From CoderzHeaven</string> </resources>