爲什麼不能消除所有的非數字和再算上剩餘的數字並在以後再加回來?這允許用戶自由反正要填寫自己的電話號碼,他們想...
String PhoneNo = "+123-456 7890";
String Regex = "[^\\d]";
String PhoneDigits = PhoneNo.replaceAll(Regex, "");
if (PhoneDigits.length()!=10)
{
// error message
}
else
{
PhoneNo = "+";
PhoneNo = PhoneNo.concat(PhoneDigits); // adding the plus sign
// validation successful
}
如果你的應用程序的目的是在國際上使用替代
if (!PhoneDigits.length()!=10)
與
if(PhoneDigits.length() < 6 || PhoneDigits.length() > 13)
爲Fatti汗建議。
要在你張貼在Android EditText Validation and Regex代碼應用此首先包括在公共類此方法,或者含有的onClick()類:
public boolean validateNumber(String S) {
String Regex = "[^\\d]";
String PhoneDigits = S.replaceAll(Regex, "");
return (PhoneDigits.length()!=10);
}
,包括在CreateNewRider類此方法:
protected String tidyNumber(String S) {
String Regex = "[^\\d]";
String PhoneDigits = S.replaceAll(Regex, "");
String Plus = "+";
return Plus.concat(PhoneDigits);
}
這是驗證發生......
@Override
public void onClick(View view) {
Boolean b = false;
if(inputfullname.getText().toString().equals("")) b = true;
else if(... // do this for all fields
else if(inputmobileNo.getText().toString().equals("")) b=true;
else if(inputemergencyContactNo.getText().toString().equals("")) b=true;
else {
if(validateNumber(inputmobileNo.getText().toString())
Toast.makeText(RiderProfile.this, "Invalid mobile number", Toast.LENGTH_SHORT).show();
else if(validateNumber(inputemergencyContactNo.getText().toString())
Toast.makeText(RiderProfile.this, "Invalid emergency contact number", Toast.LENGTH_SHORT).show();
else {
// Validation succesful
new CreateNewRider().execute();
}
}
if(b) Toast.makeText(RiderProfile.this, "Please filled in All field", Toast.LENGTH_SHORT).show();
}
然後在CreateNewRider類使用tidyNumber():
protected String doInBackground(String... args) {
String fullname= inputfullname.getText().toString();
String IC= inputIC.getText().toString();
String mobileNo= tidyNumber(inputmobileNo.getText().toString());
String emergencyContactName= inputemergencyContactName.getText().toString());
String emergencyContactNo= tidyNumber(inputemergencyContactNo.getText().toString());
...
謝謝你的想法n解決方案..我會嘗試插入到我的編碼..tq這麼多.. – 2014-12-03 06:25:42
我試過編碼,但它似乎不是工作.. – 2014-12-03 06:52:30
我修復了代碼中的一些錯誤。讓我知道,如果它現在適合你... – 2014-12-03 17:01:00