android 메 일 입력 이 합 법 적 인지 검증

본 논문 의 사례 는 안 드 로 이 드 가 메 일 입력 이 합 법 적 인지 검증 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
다음은 핸드폰 번호 와 메 일이 합 법 적 인지 검증 하 는 방법 입 니 다.이 두 가지 정적 방법 을 자신의 프로젝트 에 직접 입력 하면 사용 할 수 있 습 니 다.

public class MainActivity extends Activity implements View.OnClickListener {

 private Button btn;
 private EditText et;
 private TextView tv;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  btn = (Button) findViewById(R.id.btn);
  et = (EditText) findViewById(R.id.et);
  tv = (TextView) findViewById(R.id.tv);
  btn.setOnClickListener(this);
 }

 @Override
 public void onClick(View view) {
  switch (view.getId()) {
   case R.id.btn:

    String number = et.getText().toString();
    boolean judge = isMobile(number);
    if (judge == true) {
     tv.setText("     ");
    } else {
     tv.setText("      ");
    }
    break;
  }
 }


// /**
//  *       
//  */
 public static boolean isMobile(String number) {
 /*
   :134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
   :130、131、132、152、155、156、185、186
   :133、153、180、189、(1349  )
             1,      3 5 8,        0-9
 */
 //"[1]"   1    1,"[358]"        3、5、8    ,"\\d{9}"        0~9   , 9 。
  String num = "[1][358]\\d{9}";
  if (TextUtils.isEmpty(number)) {
   return false;
  } else {
   //matches():                
   return number.matches(num);
  }
 }
//    
 public static boolean isEmail(String strEmail) {
  String strPattern = "^[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";
  if (TextUtils.isEmpty(strPattern)) {
   return false;
  } else {
   return strEmail.matches(strPattern);
  }
 }


}
정규 표현 식 이해 하기
학습 과정
1.개념:"정규 표현 식"(Regular Expression)은 문자열 과 검색 문자열 을 일치 시 키 는 특수 한 문자열 입 니 다.
2.자바 기본 패키지 중:
java.util.regex 패 키 지 는 주로 세 가지 종류 로 구성 되 어 있 습 니 다.Pattern,Matcher,PatternSyntax Exception.
3.정규 표현 식 의 역할:
1).문자열 의 정확성 판단
2).문자열 찾기
3).다른 종류,특히 String 에서 의 사용

// 1.         
 //           136   11        
 private void m1(String s) {
  //    :
  // boolean b = Pattern.matches("136\\d{8}", "13698987654");
  //    :
  Pattern p = Pattern.compile("136\\d{8}");
  Matcher m = p.matcher(s);//           
  boolean b = m.matches();//       
  System.out.println(b);// true
}

// 2.                    
 private void m3() {
  Pattern p = Pattern.compile("\\d{2}");
  Matcher m = p.matcher("a29abbccsdf");
  boolean b = m.find();
  System.out.println(b);// true
 }

// 3.       String    
 //            
 public void m4() {
  // String s = "23+234-123*234/1000";
  // String[] a = s.split("\\+|\\-|\\*|/");

  String s = "11+22+33*66";
  String[] a = s.split("\\*");
  for (String string : a) {
   System.out.println(string);
  }
 }

//4.  :        ax  by  ,            
public class Test {
 public boolean m1(String str) {

//    :
// Pattern p = Pattern.compile("ax.by");
// Matcher m = p.matcher(str);
// boolean b = m.matches();

//    
 boolean b = Pattern.matches("ax.by", str);
 return b;
 }
 public static void main(String[] args) {
 Test t = new Test();
 System.out.println(t.m1("axmby"));
 }
}
4.힌트 1:정규 표현 식 은 문자열 에서 일치 하 는 하위 문자열 을 찾 을 수 있 습 니 다.다른 클래스 에서 의 사용...(뒷부분
5.힌트 2:
●Pattern 대상 은 컴 파일 된 정규 표현 식 을 표시 합 니 다.Pattern 류 는 공공 구조 방법 을 제공 하지 않 았 다.공공 정적 copile 방법 을 호출 해 야 합 니 다.Pattern 대상 을 되 돌려 줍 니 다.
●Matcher 는 입력 한 문자열 로 이 모드 를 분석 하고 일치 하 는 작업 을 수행 하 는 대상 입 니 다.Matcher 도 공공 구조 방법 을 정의 하지 않 았 습 니 다.Pattern 대상 을 호출 하 는 matcher 방법 으로 Matcher 대상 을 얻어 야 합 니 다.
●PatternSyntax Exception 대상 은 이상 을 검사 하지 않 고 정규 표현 식 의 문법 오 류 를 표시 합 니 다.
정규 표현 식 어댑터
학습 과정
일치 하 는 문자 의 일치 문자
1."."->임의의 문자 와 일치 하 는 데 사용 합 니 다.
예 를 들 어't.n'은'tan','ten','tin'과'ton'과 일치 하고't\#n','tpn',심지어't n'도 일치 합 니 다.
Pattern p = Pattern.compile(“a.b.c.d”);
Matcher m = p.matcher(“axbac2d”);// 정규 표현 식 전화번호
boolean b = m.matches();// 일치 여부 판단 true
2."[]"-"해결 하기 위해"."일치 범위 가 너무 넓 습 니 다.이 문 제 는 괄호("[]")에서 의미 있 는 문 자 를 지정 할 수 있 습 니 다.이 때 는 괄호 안에 지정 한 문자 만 일치 합 니 다.즉,정규 표현 식't[aeio]n'은'tan','Ten','tin','ton'만 일치 하 는 것 이다.그러나"Toon"은 일치 하지 않 습 니 다.괄호 안에 한 글자 만 일치 할 수 있 기 때 문 입 니 다.
3."|"-"위 에 일치 하 는 모든 단어(tan","Ten","tin","ton")를 제외 하고"toon"과 일치 하려 면"|"연산 자 를 사용 할 수 있 습 니 다."|"조작 부호 의 기본 적 인 의 미 는 바로'또는'연산 이다."toon"과 일치 하려 면"t(a|e|i|o|oo)n"정규 표현 식 을 사용 하 십시오.여 기 는 사각형 확장 번 호 를 사용 할 수 없습니다.왜냐하면 사각형 괄호 는 하나의 문자 만 일치 할 수 있 기 때 문 입 니 다.여기에 괄호'()'를 사용 해 야 합 니 다.그 역할 은 산술 표현 식 의 역할 과 같 고 전 체 를 표시 합 니 다.
4."-"숫자 나 자모의 범 위 를 나타 낸다.
[0-9]는 0 에서 9 의 한 문 자 를 나타 내 고[3-8]은 3 에서 8 의 한 문 자 를 나타 낸다.
[a-z]는 a 에서 z 까지 의 문 자 를 나타 내 고[b-m]는 b 에서 m 까지 의 문 자 를 나타 낸다.
[A-Z]는 A 에서 Z 까지 의 문자 중 하 나 를 나타 낸다.
[b-d3-8]은 b 에서 z 또는 3 에서 8 의 한 문 자 를 나타 낸다.
[a-dx-z]는 a 에서 d 또는 x 에서 z 까지 의 문 자 를 나타 낸다.
예시:
[a-c][0-9]{3}a234,b112,c223 등 과 일치 합 니 다.
5."^"->즉 비,이 기호 오른쪽 에 바짝 붙 어 있 는 기호 가 나타 나 지 않 는 지 확인 하 는 데 사용 된다.
5.1[^0-9]는 0 에서 9 의 한 글자 로 할 수 없다 는 뜻 이다.
5.2[^A]는 A 가 될 수 없 음 을 나타 내 는 문자
5.3[^a-c]는 a 에서 c 까지 의 문 자 를 표시 하지 않 습 니 다.
6.단축 키
7."\"는 전의 를 나타 낸다
정규 표현 식 에서 사용 할 문자 가 마스크 와 충돌 하면 앞 에'\'를 붙 여 마스크 가 아 님 을 표시 합 니 다.
예 를 들 어'[0-9]{3}\*{2}[0-9]{2}a*'는 횟수 가 아니 라 문자 입 니 다.그것 은 0 에서 9 까지 의 세 개의 숫자 로 시작 할 수 있 습 니 다.그 다음은 두 개의*이 고 그 다음 에는 0 에서 9 까지 의 두 개의 숫자 는 마지막 에 0 에서 여러 개의 a 문자 입 니 다.
이"234**23a"는 위의 정규 표현 식 과 일치 할 수 있 습 니 다.
8."끝 을 표시 합 니 다.모든 정규 표현 식 뒤에 추가 할 수 있 습 니 다."끝 을 표시 합 니 다.모든 정규 표현 식 뒤에 추가 할 수 있 습 니 다.실질 적 으로 추가 하지 않 는 것 과 같 습 니 다.
9.특별한 일치
[\u4e 00-\u9fa 5]한자 일치
예제"[\u4e 00-\u9fa 5]{3}"세 한자 로 구 성 된 문자열 과 일치 할 수 있 습 니 다.
2.일치 횟수 의 통 일치
이 기호 들 은 이 기호 왼쪽 에 있 는 기호 가 나타 나 는 횟수 를 확인 하 는 데 사용 된다.
예제 1:a*Hello 는 Hello 로 끝 나 는 0~여러 a 로 시작 하 는 문자열 과 일치 할 수 있 습 니 다.예 를 들 어 Hello,aHello,aaHello,aaaHello 등 입 니 다.
예시 2:MyA*Hello 는 My 로 시작 하고 Hello 로 끝 날 수 있 으 며 중간 에 0 에서 여러 개의 A 가 있 을 수 있 습 니 다.예 를 들 어 MyAAA Hello 와 같 습 니 다.
예제 3:HelloE+World 는 Hello 로 시작 하여 World 로 끝 날 수 있 습 니 다.중간 에 1~여러 개의 E 가 있 을 수 있 습 니 다.예 를 들 어 HelloEE World 와 같 습 니 다.
예 4:HelloE?World 는 Hello 로 시작 할 수 있 습 니 다.World 로 끝 날 수 있 습 니 다.중간 에 0 에서 1 개의 E 가 있어 야 합 니 다.
예제 5:HelloE{3}World 는 Hello 로 시작 하여 World 로 끝 날 수 있 습 니 다.중간 에 E 가 3 개 있어 야 합 니 다.
예 6:HelloE{2,4}World 는 Hello 로 시작 하여 World 로 끝 날 수 있 습 니 다.중간 에 2~4 개의 E 가 있어 야 합 니 다.
예제 7:Hello[^abc]는 Hello 로 시작 할 수 있 으 며 a 또는 b 또는 c 로 끝 낼 수 없습니다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기