开发者

Regular Expression not matched

开发者 https://www.devze.com 2023-04-01 13:46 出处:网络
I am trying to validate my string with the regular expression. Here is what I am trying to do EditText serialText = (EditText) findViewById(R.id.pinText);

I am trying to validate my string with the regular expression. Here is what I am trying to do

EditText serialText = (EditText) findViewById(R.id.pinText);
serialText.setVisibility(View.VISIBLE);
serialNumber = serialText.getText().toString();

I am storing the serial number in serialNumber

I have the following method to match the regular expression

boolean isRegularSerialNumber(String pinNumber) {
  // regular expression to be matched against
  String regularString = "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}";

  Pattern pattern = Pattern.compile(regularString);
  Matcher matcher = pattern.matcher(pinNumber);
  boolean isRegularSerialNumberValid ;

  if (pinNumber.matches(regularString)) 
    isRegularSerialNumberValid = true;
  else 
    isRegularSerialNumberValid = false;

  return isRegularSerialNumberValid;
}

But I am not able to match this.

Any answer for this? Hope Pattern and Matcher are the right one for this.


What I am trying to do is this, this matched serialNumber I am validating against serial number stored in the database. If match found, it开发者_如何转开发 returns success or else failure. And i have entered the exact serial number which is stored in the database but even then it returns failure.

I followed the method what @Stevehb said and i got the match true in that case.

This is how I am sending my data

parameter.add(new BasicNameValuePair("validate", serialNumber));

Breaking my head on this.


The built in String functions should work by themselves. isRegularSerialNumber() could just be

boolean isRegularSerialNumber(String pinNumber) {
    String regularString = "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}";
    return pinNumber.matches(regularString);
}

This works for me when I tested 1234-5678-9012-1324 (true) and 12-1234-123-1324 (false).

Also, it looks like you're maybe grabbing the input string from serialText right after you make it visible. Could your problem be in grabbing the text before the user has made any input?


looks much alike .net regex code.

instead of

if (pinNumber.matches(regularString)) 

try

if (matcher.matches()) 
0

精彩评论

暂无评论...
验证码 换一张
取 消