기능구현/아웃게임

[UI] - 닉네임 생성(특수문자,이모티콘 제한)

MuscleDeveloper5683 2025. 2. 13. 20:05
728x90
SMALL

 

지난 시간에 닉네임 생성을 했었는데 닉네임을 생성할 때 특수문자나, 이모티콘과 같은 특수한 문자를 넣어도 

닉네임이 생성이 되었다.

 

 

닉네임 생성시에 8글자 제한 및 특수문자와 이모티콘을 제한시켜보자.

 

 

1. 공지 추가

 

 

 

2. 스크립트 수정 (LobbyManager.cs)

 

네임 스페이스 추가

 

using System.Text.RegularExpressions; 네임스페이스는 Regex 클래스를 사용하기 위한 것이다.

 

 

 

코드 작성

 

 

 

if(!char.IsLetterOrDigit(tmp) && char.IsWhiteSpace(tmp))

 

char.IsLetterOrDigit(tmp)

  • 목적: 주어진 문자가 알파벳(대소문자 구분)이나 숫자(0-9)인지를 확인한다.
  • 동작:
    • IsLetterOrDigit 함수는 해당 문자가 알파벳(A-Z, a-z) 또는 숫자(0-9)일 경우 true를 반환한다.
    • 그 외의 문자는 false를 반환한다.

 

char.IsWhiteSpace(tmp)

  • 목적: 주어진 문자가 공백 문자인지를 확인한다. 공백 문자에는 일반적인 공백(space)뿐만 아니라, 탭(tab), 줄 바꿈(newline) 등의 다른 공백 문자도 포함된다.
  • 동작:
    • IsWhiteSpace 함수는 해당 문자가 공백 문자인 경우 true를 반환한다.
    • 공백 문자가 아닌 경우 false를 반환한다.

 

 

 

 

string outputString = Regex.Replace(inputString, @"[^\w\s]", "");

 

Regex.Replace 함수

Regex.Replace(inputString, @"[^\w\s]", "")

  • 목적: 정규 표현식을 사용하여 문자열에서 특정 패턴을 찾아 다른 문자열로 대체하는 함수이다. 여기서의 사용 목적은 문자열에서 이모지와 특수문자를 제거하는 것

@"[^\w\s]" 패턴은 알파벳, 숫자, 공백 외의 모든 문자를 찾아서 제거한다.

 

정규 표현식: @"[^\w\s]

  • [ ] : 대괄호는 문자 클래스, 즉 특정 문자들을 묶어서 정의할 때 사용한다.
  • ^ : 대괄호 안에서 ^는 부정(not)을 의미한다. 즉, 뒤에 나오는 문자들 외의 문자를 찾는다.
  • \w : 알파벳(A-Z, a-z), 숫자(0-9), 그리고 밑줄(_) 문자를 모두 포함한다.
  • \s : 공백 문자(스페이스, 탭, 줄 바꿈 등)를 의미한다.
  • "[^\w\s]" : 알파벳, 숫자, 공백 외의 모든 문자(즉, 특수문자와 이모지)를 찾는 패턴이다.

 

 

 

결과

 

728x90