正则表达式的语法可参考以下网站,在此不再赘述。以下将写一个小实例供以后参考。
http://www.runoob.com/regexp/regexp-tutorial.html
/**
*
* @param str
* :字符串
* @param afterNum
* :限制小数点后尾数,只能输入afterNum字符
* @return 是否可以输入
*/
public static boolean IsCanInput(String str, int afterNum) {
String reg = "^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0," + afterNum + "})?$";
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(reg);
java.util.regex.Matcher match = pattern.matcher(str);
if(match.matches() == false){
return false;
}else{
return true;
}
}
一般用于EditText输入内容的限制,EditText调用addTextChangedListener方法添加一个TextWatcher对象,在afterTextChanged调用IsCanInput方法,判断是否可以输入,如果返回false,将值设置成修改前的数值。
只能输入n位的数字
String reg = "^\\d{n}$";
只能输入数字
String reg = "^[0-9]*$";
判断浮点数(beforNum小数点前面长度,afterNum小数点后面长度)
"^(([0]{0,1})|([1-9]{1}[0-9]{0," + (beforNum - 1) + "}))?(\\.(\\d){0," + afterNum + "})?$"
只能输入n位的数字
String reg = "^\\d{n}$";