반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 클라우드컴퓨팅
- 2
- 웹개발
- 보안
- 버전관리
- 데이터구조
- 소프트웨어공학
- 컴퓨터공학
- 프로그래밍
- 인공지능
- 머신러닝
- 컴퓨터과학
- 자바스크립트
- 소프트웨어
- 코딩
- 딥러닝
- 네트워크
- 사이버보안
- 알고리즘
- 네트워크보안
- 컴퓨터비전
- 데이터분석
- 데이터베이스
- 자료구조
- Yes
- 빅데이터
- 프로그래밍언어
- I'm Sorry
- 데이터과학
- 파이썬
Archives
- Today
- Total
스택큐힙리스트
자바스크립트에서 매치된 부분 문자열이 "정의되지 않음"을 반환하는 이유는 무엇인가요? 본문
반응형
오늘 자바스크립트 정규 표현식을 사용할 때 이상한 동작을 발견했습니다 (Windows Vista 상의 Firefox 3).
var str = format_%A;
var format = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(str);
console.log(format); // [format_%A, %A]
console.log(format[0]); // format_undefined
console.log(format[1]); // Undefined
정규 표현식에는 문제가 없습니다. 첫 번째 console.log
호출에서 올바른 부분이 일치되었음을 볼 수 있습니다.
Internet Explorer 7와 Chrome은 모두 예상대로 동작합니다: format[1]
이 %A를 반환합니다 (뭐, Internet Explorer 7이 제대로된 일을 한다는 것은 좀 예상 밖이었습니다...)
이것은 Firefox의 버그인가요, 아니면 전혀 모르는 기능인가요?
답변 1
이것은 console.log()가 printf()와 같은 방식으로 작동하기 때문입니다. console.log()의 첫 번째 인수는 실제로 추가 인수들을 따라가는 형식 문자열입니다. %A는 자리 표시자입니다. 예를 들어:
console.log(내 이름은 %A, 존); // 내 이름은 존
자세한 내용은 console.log() 문서를 참조하십시오. %A와 다른 문서화되지 않은 자리 표시자들은 %o와 비슷한 작업을 하는 것으로 보입니다.
답변 2
매칭된 부분 문자열이 JavaScript에서 정의되지 않음(undefined)으로 반환되는 이유는 무엇일까요?JavaScript에서 매칭된 부분 문자열이 정의되지 않음(undefined)으로 반환되는 이유는 일반적으로 해당 부분 문자열이 존재하지 않거나 찾을 수 없는 경우입니다. 이는 일치하는 패턴이 없는 경우 또는 인덱스가 범위를 벗어난 경우에 발생할 수 있습니다.
자바스크립트에서는 문자열에서 특정 패턴과 일치하는 부분 문자열을 찾을 수 있는 다양한 메서드를 제공합니다. 그러나 사용자가 잘못된 패턴 또는 인덱스를 사용하여 매칭된 부분 문자열을 찾을 때 undefined가 반환될 수 있습니다.
매칭된 부분 문자열이 undefined로 반환되는 경우, 코드를 다시 확인하여 올바른 패턴 또는 인덱스를 사용하는지 확인하는 것이 좋습니다. 또한 문자열이 해당 패턴과 매칭되어 있는지 확인하여 문제를 해결할 수 있습니다.
이와 같이 자바스크립트에서 매칭된 부분 문자열이 정의되지 않음(undefined)으로 반환되는 이유는 다양한 이유가 있을 수 있지만, 주로 부적절한 패턴 또는 인덱스 사용으로 인한 것일 수 있습니다. 코드를 신중하게 검토하고 올바른 코드를 작성하여 이를 방지하는 것이 중요합니다.
반응형
Comments