/////
Search
Duplicate

4. 중복코드빼버리기

비밀번호패턴검사
→회원가입/비밀번호변경
닉네임패턴검사
닉네임설정/닉네임변경
이메일양식안맞는걸한번거를까고민
→로그인/비밀번호찾기
fun MutableStateFlow<String>.nicknameValidCheck(): Flow<InputChecker> { val regex = "^[0-9가-힣ㄱ-ㅎㅏ-ㅣa-zA-Z\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]+$" return transformWithRegex(regex) } fun MutableStateFlow<String>.passwordValidCheck(): Flow<InputChecker> { val regex = "^(?=.*[a-zA-Z])(?=.*[0-9]).{8,}+$" return transformWithRegex(regex) } private fun MutableStateFlow<String>.transformWithRegex(regex: String): Flow<InputChecker> { return transform { nickname -> when { nickname.isEmpty() -> emit(InputChecker.EMPTY) Pattern.matches(regex, nickname) -> emit(InputChecker.VALID) else -> emit(InputChecker.NOTVALID) } } }
Kotlin
복사