본문 바로가기

Flutter & Dart

Flutter & Dart 에서 정규표현식(Regular Expression) 사용하기

반응형

Flutter & Dart에서 사용하는 정규 표현식이다 

 

한글 ::: r"^[ㄱ-ㅎ가-힣]*$" 

영문 ::: r"^[a-zA-Z]*$"
숫자 ::: r"^[0-9]*$"
공백 ::: r"\s+"

특수문자 ::: r'''^!#%&@`:;-.<>,~\\(\\)\\{\\}\\^\\[\\][*][+][$][|][']["]''

이메일 ::: r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+"

 

 
와 같은 정규식을 사용하였다 
 
  •  한영숫자공백 허용
    final validText = RegExp(r"^[ㄱ-ㅎ가-힣0-9a-zA-Z\s+]*$");

처럼 원하는 정규식 조합을 사용하면 된다.

 

class NickNameCheck {
  bool is8Characters;
  bool isCheck;
  NickNameCheck({
    this.is8Characters = false,
    this.isCheck = false,
  });
  bool get isCorrectWord => (is8Characters && isCheck);
}

NickNameCheck checkPossibleNickNameText(String value) {
  var nickNameCheck = NickNameCheck();
  final validText = RegExp(r"^[ㄱ-ㅎ가-힣0-9a-zA-Z]*$"); //한영숫자

  //문자가 비었는지 확인
  if (value.isEmpty) {
    // 문자가 비었다면 모드 false로 리턴
    return NickNameCheck();
  }

  //2자 이상인지 확인
  if (value.length >= 2) {
    nickNameCheck.is2Characters = true;
  } else {
    nickNameCheck.is2Characters = false;
  }

  //조건에 부합하지 않는 문자가 있는지 확인
  if (!validText.hasMatch(value)) {
    nickNameCheck.isCheck = false;
  } else {
    nickNameCheck.isCheck = true;
  }

  return nickNameCheck;
}

 

와 같이 사용한다.

 

반응형