2016-01-10 115 views
0

因此,我正在Xamarin中为学校制作C#android应用程序,并且在某些时候用户需要输入IBAN号码。 我想检查输入是否等于4次4个数字与他们之间的破折号(例如1234-1234-1234-1234), 悲伤我不知道如何做到这一点,我还没有找到任何可以帮助我, 至今。Android自定义数字输入验证

这是我的活动,我需要检查“mTxtIBAN”的输入是否等于IBAN号码。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using Android.App; 
using Android.Content; 
using Android.OS; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 

namespace LoginSystem 
{ 
[Activity (Label = "SubDetailsBankActivity")]   
public class SubDetailsBankActivity : Activity 
{ 
    private Button mBtnContinue; 
    private EditText mTxtIBAN; 
    private EditText mTxtBIC; 

    private TextView mIBANWarning; 
    private TextView mBICWarning; 
    protected override void OnCreate (Bundle savedInstanceState) 
    { 
     base.OnCreate (savedInstanceState); 
     SetContentView (Resource.Layout.SubBankDetails); 
     // Create your application here 
     string email = Intent.GetStringExtra ("Email") ?? "Data not available"; 
     string firstName = Intent.GetStringExtra ("FirstName") ?? "Data not available"; 
     string lastName = Intent.GetStringExtra ("LastName") ?? "Data not available"; 
     string streetNumber = Intent.GetStringExtra ("StreetNumber") ?? "Data not available"; 
     string cityCode = Intent.GetStringExtra ("CityCode") ?? "Data not available"; 
     string country = Intent.GetStringExtra ("Country") ?? "Data not available"; 


     mBtnContinue = FindViewById<Button> (Resource.Id.btnContinue); 
     mTxtIBAN = FindViewById<EditText> (Resource.Id.IBAN); 
     mTxtBIC = FindViewById<EditText> (Resource.Id.BIC); 

     mIBANWarning = FindViewById<TextView> (Resource.Id.IBANtext); 
     mBICWarning = FindViewById<TextView> (Resource.Id.BICtext); 

     mBtnContinue.Click += (object sender, System.EventArgs e) => 
     { 
      if (mTxtIBAN.Text.Length != 0 && mTxtBIC.Text.Length != 0) { 
       var newSub = new Intent(this, typeof(SubDetailsComplete)); 
       newSub.PutExtra ("Email", email); 
       newSub.PutExtra ("FirstName", firstName); 
       newSub.PutExtra ("LastName", lastName); 
       newSub.PutExtra ("StreetNumber", streetNumber); 
       newSub.PutExtra ("CityCode",cityCode); 
       newSub.PutExtra ("Country", country); 
       newSub.PutExtra ("IBAN", mTxtIBAN.Text); 
       newSub.PutExtra ("BIC", mTxtBIC.Text); 

       StartActivity (newSub); 
      } 
      if (mTxtIBAN.Text.Length == 0){ 
       mIBANWarning.Text = "Fill in your IBAN number!"; 
      } 
      if (mTxtBIC.Text.Length == 0){ 
       mBICWarning.Text = "Fill in your BIC number!"; 
      } 
     }; 
    } 
} 
} 

任何帮助将不胜感激。 预先感谢您,祝您有美好的一天。

+0

希望你会知道它...尝试使用正则表达式来匹配你的字符串.... – Srinivasan

+0

@Srinivasan我不知道这一点,但我会查找它:) – yoshiMannaert

回答

1

你可以检查一下这种方法:

Regex rgx = new Regex(@"^\d{4}?-\d{4}?-\d{4}?-\d{4}?$"); 
if (rgx.IsMatch(mTxtIBAN.Text)) 
{ 
    // valid IBAN 
}