일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 안드로이드
- label
- deeplink
- 링크드리스트
- swift baekjoon
- 커스텀팝업
- C언어
- storyboard
- 버블정렬
- 백준
- IOS
- Swift
- 연결리스트
- Android Studio
- text to speech
- FLUTTER
- BAEKJOON
- 자바
- TextField
- 준코딩
- android java
- xocde
- Firebase
- Android
- 안드로이드스튜디오
- customPopup
- Xcode
- 예외처리
- 보호와 보안
- 플러터
Archives
- Today
- Total
준코딩
(ios/Swift) 비밀번호, 이메일, 전화번호 유효성 검사 본문
Xcode : 14.2v
사용언어: Swift , StoryBoard
깃허브주소: https://github.com/Ljunhyeob/NSPredicate
1. 비밀번호, 이메일, 전화번호 유효성 검사를 진행 하기 위해서
각각의 label, textField , button 을 추가해서 연결해줍니다.
2.그리고 각각의 유효성 검사를 진행해주는 함수를 생성합니다 (코드는 맨아래에 있습니다.)
isValidEmail ->이메일 유효성 검사
isValidPwd -> 비밀번호 유효성 검사
isValidPhoneNume -> 휴대폰 유효성검사
3. 그리고 각각의 버튼에
입력을 했는지 if문으로 확인 한 이후에
2번에서 생성한 함수에 textField 값을 넣어서 if문으로 확인 한 후
true / false 값에 따라서 원하는 코드를 입력해 주시면 됩니다.
저는 label 을 변경해주었습니다.
4. 그럼 이렇게 끝입니다.
전체 코드
//
// ViewController.swift
// ValidationTest
//
// Created by 이준협 on 2022/12/29.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var pwdLabel: UILabel!
@IBOutlet weak var pwdTextField: UITextField!
@IBOutlet weak var phoneNumLabel: UILabel!
@IBOutlet weak var phoneNumTextfield: UITextField!
@IBOutlet weak var emailLabel: UILabel!
@IBOutlet weak var emailTextfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func pwdBtn(_ sender: Any) {
if pwdLabel.text != nil {
if isValidPwd(testStr: pwdTextField.text!){
pwdLabel.text = "비밀번호 형식 맞음"
}else {
pwdLabel.text = "비밀번호 형식 틀림"
}
}else {
print("핸드폰번호를 입력하세요.")
}
}
@IBAction func phoneNumBtn(_ sender: Any) {
if phoneNumLabel.text != nil {
if isValidPhoneNum(testStr: phoneNumTextfield.text!) {
phoneNumLabel.text = "핸드폰 형식 맞음"
}else {
phoneNumLabel.text = "핸드폰 형식 틀림"
}
}else {
print("핸드폰번호를 입력하세요.")
}
}
@IBAction func emailBtn(_ sender: Any) {
if phoneNumLabel.text != nil {
if isValidEmail(testStr: emailTextfield.text!) {
emailLabel.text = "이메일 형식 맞음"
}else {
emailLabel.text = "이메일 형식 틀림"
}
}else {
print("핸드폰번호를 입력하세요.")
}
}
func isValidEmail(testStr:String) -> Bool {
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}"
// 영문숫자 + 골뱅이 + 영문숫자 + . + 영문숫자
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
let isValid = emailTest.evaluate(with: testStr)
return isValid
}
func isValidPwd(testStr:String) -> Bool {
let regex = "^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[!@#$%^&*()_+=-]).{8,50}" // 8자리 ~ 50자리 영어+숫자+특수문자
let predicate = NSPredicate(format: "SELF MATCHES %@", regex)
let isValid = predicate.evaluate(with: testStr)
return isValid
}
func isValidPhoneNum(testStr:String) -> Bool {
//01 로 시작해서 0~9 사이의 숫자가 7~8자리
let regex = "^01[0-1, 7][0-9]{7,8}$"
let phonePredicate = NSPredicate(format: "SELF MATCHES %@", regex)
let isValid = phonePredicate.evaluate(with: testStr)
return isValid
}
}
'프로그래밍 > IOS (Swift)' 카테고리의 다른 글
(ios/Swift) TextField 실시간 변경 감지 - textField didChange (0) | 2022.12.30 |
---|---|
(ios/Swift) Array 배열 쓰기 (0) | 2022.12.30 |
(ios/Swift) FScalendar 사용법 (0) | 2022.12.27 |
(ios/Swift) scrollview dynamic 스크롤뷰 길이 동적 할당 (0) | 2022.12.26 |
(ios/Swift) textfield 비밀번호 입력 형태 (0) | 2022.12.25 |
Comments