android 正则表达式和十进制格式
android regex and decimal format
我在数据库中有一列 Number(9,4)。我想发送到输入edittext的列数据。
我必须控制格式 123456789.1234 并且只控制数字和点。
我找到了数字和点的正则表达式,但我没有小数格式控制。用户无法输入 123.12345 或 1234567891.1
我该怎么做?
我的正则表达式是:
"^*[0-9\.]+$"
Edittext控件代码为:
txtTabelaEni.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s)
{
String text = txtTabelaEni.getText().toString();
if (text.length() > 0) {
if (!text.substring(text.length() - 1).matches(regexStr))
{
txtTabelaEni.setText(text.substring(0, text.length() - 1));
txtTabelaEni.setSelection(txtTabelaEni.length());
}
}
}
@Override
public void onTextChanged(CharSequence s, int st, int b, int c){ }
@Override
public void beforeTextChanged(CharSequence s, int st, int c, int a){ }
});
I must control format 123456789.1234 and control only number and dot.
您可以在 Java:
中使用此正则表达式
String re = "^\d{0,9}\.\d{1,4}$"
如果您想将小数部分设为可选,请使用:
String re = "^(\d{0,9}\.\d{1,4}|\d{1,9})$"
试试这个模式:
\d+($|(\.($|\d+$)))
它寻找一个数字序列,然后是:
end of string - matches 123
a dot and end of string - matches 123.
a dot and more digits and then end of string - matches 1234.45
A后面有一个字母不会被匹配
我在数据库中有一列 Number(9,4)。我想发送到输入edittext的列数据。
我必须控制格式 123456789.1234 并且只控制数字和点。
我找到了数字和点的正则表达式,但我没有小数格式控制。用户无法输入 123.12345 或 1234567891.1
我该怎么做?
我的正则表达式是:
"^*[0-9\.]+$"
Edittext控件代码为:
txtTabelaEni.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s)
{
String text = txtTabelaEni.getText().toString();
if (text.length() > 0) {
if (!text.substring(text.length() - 1).matches(regexStr))
{
txtTabelaEni.setText(text.substring(0, text.length() - 1));
txtTabelaEni.setSelection(txtTabelaEni.length());
}
}
}
@Override
public void onTextChanged(CharSequence s, int st, int b, int c){ }
@Override
public void beforeTextChanged(CharSequence s, int st, int c, int a){ }
});
I must control format 123456789.1234 and control only number and dot.
您可以在 Java:
中使用此正则表达式String re = "^\d{0,9}\.\d{1,4}$"
如果您想将小数部分设为可选,请使用:
String re = "^(\d{0,9}\.\d{1,4}|\d{1,9})$"
试试这个模式:
\d+($|(\.($|\d+$)))
它寻找一个数字序列,然后是:
end of string - matches 123
a dot and end of string - matches 123.
a dot and more digits and then end of string - matches 1234.45
A后面有一个字母不会被匹配