본문 바로가기
TIL,WIL

some(), 정규식

by GREEN나무 2024. 12. 17.
728x90

Array.some()

some() 메서드는 배열의 요소 중 적어도 하나가 주어진 판별 함수를 통과하는지 확인합니다.

조건을 만족하는 요소가 하나라도 있으면 true를 반환, 없으면 false를 반환합니다.

배열 자체를 변경하지 않습니다.

// 화살표 함수
some((element) => { /* … */ })
some((element, index) => { /* … */ })
some((element, index, array) => { /* … */ })

// 콜백 함수
some(callbackFn)
some(callbackFn, thisArg)

// 인라인 콜백 함수
some(function (element) { /* … */ })
some(function (element, index) { /* … */ })
some(function (element, index, array) { /* … */ }, thisArg)

매개변수:

  1. callbackFn:
    • 배열의 각 요소에 대해 실행되는 함수.
    • 인자:
      • element: 현재 요소.
      • index: 현재 요소의 인덱스.
      • array: some()을 호출한 배열.
  2. thisArg (선택):
    • callbackFn을 실행할 때 사용할 this 값.

반환값:

  • 배열의 요소 중 하나라도 callbackFn에서 참(true)을 반환하면 true.
  • 모든 요소가 거짓(false)일 경우 false.

특징

  1. 순회 멈춤:
    조건을 만족하는 요소를 찾으면 바로 순회를 멈추고 true를 반환합니다.
  2. 희소 배열 지원:
    값이 없는 빈 슬롯은 무시됩니다.
  3. 배열의 원본 유지:
    배열을 변경하지 않습니다.
  4. 일반 객체에서도 사용 가능:
    배열이 아닌 객체에서도 Array.prototype.some을 호출하여 사용할 수 있습니다. (길이와 키 속성만 있으면 됨)
// 조건 테스트:
[2, 5, 8, 1, 4].some((x) => x > 10); // false 
[12, 5, 8, 1, 4].some((x) => x > 10); // true

// 값 포함 여부 확인:
const fruits = ["apple", "banana", "mango"]; 
fruits.some((fruit) => fruit === "banana"); // true 
fruits.some((fruit) => fruit === "grape"); // false

// 불리언 변환:
const TRUTHY_VALUES = [true, "true", 1]; 
function getBoolean(value) {
  return TRUTHY_VALUES.some((t) => t === value);
} 
getBoolean("true"); // true
getBoolean("false"); // false

// 희소 배열 사용:
console.log([1, , 3].some((x) => x === undefined)); // false

// 배열이 아닌 객체에서 사용:
const arrayLike = { length: 3, 0: "a", 1: "b", 2: "c" }; 
Array.prototype.some.call(arrayLike, (x) => x === "b"); // true

 


정규표현식 (RegExp)

문자열을 검사하거나 처리할 때 사용되는 도구로 특정 패턴과 일치하는 텍스트를 탐색, 대체할 수 있으며, 효율적인 문자열 처리를 제공합니다.

정규표현식 생성 방법

  1. 리터럴 표기법
    • /패턴/플래그
    • 예: /abc/i
  2. RegExp 생성자 사용
    • new RegExp('패턴', '플래그')
    • 예: new RegExp('abc', 'i')
  3. 백슬래시 사용
    • 특정 문자(+, * 등)를 사용하려면 백슬래시(\)를 붙여야 합니다.
    • 예: /a\+/와 new RegExp('a\\+')는 동일한 표현.

정규표현식 메서드

  1. test 메서드
    • 문자열이 정규 표현식과 일치하는지(오름차순 알파벳) 확인하여 true나 false를 반환. 
    • console.log(/abc/.test("abcde")); // true console.log(/abc/.test("abxde")); // false

메타 문자

  • 정규표현식에서 자주 사용하는 메타 문자:
    • \d : 숫자 (0-9)
    • \w : 영숫자 (a-z, A-Z, 0-9, _)
    • \s : 공백 문자 (스페이스, 탭, 줄 바꿈)
    • \D : 숫자가 아닌 문자
    • \W : 영숫자가 아닌 문자
    • \S : 공백이 아닌 문자
    • . : 개행 문자를 제외한 모든 문자

범위 지정

  • [0-9]와 같이 대괄호([]) 안에서 하이픈(-)을 사용해 범위를 지정.
    예: /[a-z]/는 모든 소문자 알파벳과 일치.

ex)

숫자 포함 여부 확인

console.log(/[0-9]/.test("Hello123")); // true 
console.log(/[0-9]/.test("Hello")); // false

 

특정 단어 포함 확인

console.log(/hello/i.test("Hello World")); // true (대소문자 무시)

 

복잡한 패턴 찾기

 - 이메일 주소 확인:

let emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailRegex.test("example@mail.com")); // true
console.log(emailRegex.test("not-an-email")); // false

 

문자열 대체

let result = "2024-12-17".replace(/-/g, "/");
console.log(result); // "2024/12/17"

 

 


참고 

 

some() : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/some

정규식 테스트 : https://inpa.tistory.com/entry/%F0%9F%92%BB-%EC%A0%95%EA%B7%9C%EC%8B%9D-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%82%AC%EC%9D%B4%ED%8A%B8-%F0%9F%8E%81-%EB%AA%A8%EC%9D%8C

정규식 메타 문자 : http://www.ktword.co.kr/test/view/view.php?no=5851

정규식 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

'TIL,WIL' 카테고리의 다른 글

DNS  (1) 2024.12.18
socket.io  (1) 2024.12.16
wil - 12.13  (0) 2024.12.13
TIL 241213  (1) 2024.12.13
TIL241212  (0) 2024.12.12