?
u
m
/
p
1-9
0
`
String
extends
절 값으로 사용할 수 있다. 지정된 String 동작을 상속하려는 서브클래스 super
호출을 포함해야 한다.이 함수는 호출될 때 다음 단계를 수행한다:
String
이 함수는 나머지 매개변수 codeUnits 를 형성하는 임의 개수의 인수와 함께 호출될 수 있다.
호출되면 다음 단계를 수행한다:
이 함수의
이 함수는 나머지 매개변수 codePoints 를 형성하는 임의 개수의 인수와 함께 호출될 수 있다.
호출되면 다음 단계를 수행한다:
이 함수의
String.prototype
의 초기값은
이 프로퍼티는 속성 { [[Writable]]:
이 함수는 가변 개수의 인수와 함께 호출될 수 있다. 첫 번째 인수는 template 이고 나머지는 리스트 substitutions 를 이룬다.
호출되면 다음 단계를 수행한다:
이 함수는 태그드 템플릿(
String 프로토타입 객체:
명시적으로 달리 기술되지 않는 한, 아래에 정의된 String 프로토타입 객체의 메서드는 제네릭하지 않으며, 그들에게 전달되는
이 메서드는 이 객체를 String으로 변환한 값 내에서 인덱스 pos 위치의 코드 유닛을 포함하는 단일 요소 String을 반환한다. 해당 인덱스에 요소가 없으면 결과는 빈 문자열이다. 결과는 String 객체가 아닌 String 값이다.
pos
가 정수 Number이면 x.charAt(pos)
의 결과는 x.substring(pos, pos + 1)
결과와 동일하다.
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다;
이 메서드는 이 객체를 String으로 변환한 값 내에서 인덱스 pos 위치 코드 유닛의 숫자 값을 나타내는 Number (0 이상 216 미만의 음이 아닌 정수 Number)를 반환한다. 해당 인덱스에 요소가 없으면 결과는
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다;
이 메서드는 이 객체를 String으로 변환한 결과에서 인덱스 pos 위치의 문자열 요소에서 시작하는 UTF-16 인코딩 코드 포인트(
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다;
이 메서드는
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드의
이 메서드는 의도적으로 제네릭이다;
String.prototype.constructor
의 초기값은
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 searchString의 코드 유닛 시퀀스(문자열로 변환)가 이 객체(문자열로 변환)의 해당 코드 유닛과 endPosition - length(this) 지점부터 일치하면
첫 번째 인수가 RegExp이면 예외를 던지는 것은 향후 버전에서 그러한 인수 값을 허용하는 확장을 정의할 수 있도록 하기 위한 것이다.
이 메서드는 의도적으로 제네릭이다;
이 메서드는 호출될 때 다음 단계를 수행한다:
searchString이 이 객체를 String으로 변환한 결과의 position 이상 인덱스들에서 하나 이상
첫 번째 인수가 RegExp이면 예외를 던지는 것은 향후 버전 확장을 위해서이다.
이 메서드는 의도적으로 제네릭이다;
searchString이 이 객체를 String으로 변환한 결과의 position 이상 인덱스 중 하나 이상에서
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
searchString이 이 객체를 String으로 변환한 결과에서 position 이하 인덱스 하나 이상에서
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
ECMA-402 국제화 API를 포함하는 구현은 ECMA-402 명세에 따라 이 메서드를 구현해야 한다. 포함하지 않는 구현은 다음 명세를 사용한다:
이 메서드는
비교 수행 전 다음 준비 단계를 거친다:
두 번째와 세 번째 선택적 매개변수 의미는 ECMA-402 명세에 정의된다; 이를 포함하지 않는 구현은 다른 해석을 부여해서는 안 된다.
실제 반환 값은 추가 정보를 인코딩할 수 있도록
이 메서드 자체는 Array.prototype.sort
에 직접 넘기기 적합하지 않다. 후자는 두 인수 함수를 요구한다.
이 메서드는
// Å ANGSTROM SIGN vs.
// Å LATIN CAPITAL LETTER A + COMBINING RING ABOVE
"\u212B".localeCompare("A\u030A")
// Ω OHM SIGN vs.
// Ω GREEK CAPITAL LETTER OMEGA
"\u2126".localeCompare("\u03A9")
// ṩ LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE vs.
// ṩ LATIN SMALL LETTER S + COMBINING DOT ABOVE + COMBINING DOT BELOW
"\u1E69".localeCompare("s\u0307\u0323")
// ḍ̇ LATIN SMALL LETTER D WITH DOT ABOVE + COMBINING DOT BELOW vs.
// ḍ̇ LATIN SMALL LETTER D WITH DOT BELOW + COMBINING DOT ABOVE
"\u1E0B\u0323".localeCompare("\u1E0D\u0307")
// 가 HANGUL CHOSEONG KIYEOK + HANGUL JUNGSEONG A vs.
// 가 HANGUL SYLLABLE GA
"\u1100\u1161".localeCompare("\uAC00")
정규 등가성 정의와 논의는 Unicode 표준 2, 3장 및 UAX #15, Unicode Technical Note #5, UTS #10를 참조.
Unicode 호환 등가 또는 호환 분해는 존중하지 않는 것이 권장된다.
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는
호출되면 다음 단계를 수행한다:
String.prototype.split
과 유사하게 일반적으로 입력을 변형하지 않도록 설계되었다.이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
The abstract operation StringPaddingBuiltinsImpl takes arguments O (
The abstract operation StringPad takes arguments S (문자열), maxLength (음이 아닌 정수), fillString (문자열), and placement (
인수 maxLength는 S의 길이보다 작아질 수 없도록 클램프된다.
인수 fillString의 기본값은
The abstract operation ToZeroPaddedDecimalString takes arguments n (음이 아닌 정수) and minLength (음이 아닌 정수) and returns 문자열. It performs the following steps when called:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
The abstract operation GetSubstitution takes arguments matched (문자열), str (문자열), position (음이 아닌 정수), captures (문자열 또는
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는 이 객체를 문자열로 변환한 결과에서 인덱스 start부터 end (포함하지 않음) 전까지(end가
호출되면 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는 이 객체를 문자열로 변환한 결과를 분할해 그 부분 문자열들을 담은 배열을 반환한다. 왼쪽에서 오른쪽으로 separator 발생 지점을 찾으며, 이 지점들은 결과 배열 문자열 일부가 아니고 경계를 나눈다. separator 값은 임의 길이의 문자열이거나
호출되면 다음 단계를 수행한다:
separator 값은 빈 문자열일 수 있다. 이 경우 separator는 시작/끝의 빈
separator가
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
이 메서드는 searchString이 문자열로 변환된 코드 유닛 시퀀스가 position 인덱스에서 시작하는 이 객체(문자열 변환)의 대응 코드 유닛과 같으면
첫 번째 인수가 RegExp이면 예외를 던지는 것은 향후 확장을 위해서이다.
이 메서드는 의도적으로 제네릭이다.
이 메서드는 이 객체를 String으로 변환한 결과에서 인덱스 start부터 end (포함하지 않음) 전까지(end가
어느 인수라도
start > end이면 둘을 교환한다.
호출되면 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
ECMA-402 국제화 API를 포함한 구현은 ECMA-402 명세에 따라 구현해야 한다. 포함하지 않으면 다음 명세를 따른다:
이 메서드는
toLowerCase
와 동일하게 동작하지만 로케일에 민감한 결과(예: 터키어의 특수 규칙)를 낸다.
선택적 매개변수 의미는 ECMA-402 명세에 정의되며, 이를 지원하지 않는 구현은 다른 의미를 부여해서는 안 된다.
이 메서드는 의도적으로 제네릭이다.
ECMA-402 국제화 API를 포함한 구현은 ECMA-402 명세에 따라 구현해야 한다. 포함하지 않으면 다음 명세를 따른다:
이 메서드는 문자열 값을 UTF-16 인코딩 코드 포인트 시퀀스로 해석한다.
toUpperCase
와 동일하게 동작하지만 로케일 민감한 결과를 낸다.
선택적 매개변수 의미는 ECMA-402 명세에 정의되며, 비지원 구현은 다른 의미를 부여할 수 없다.
이 메서드는 의도적으로 제네릭이다.
이 메서드는
호출되면 다음 단계를 수행한다:
결과는 Unicode Character Database의 로케일 비의존 매핑( UnicodeData.txt
및 그것과 동반하는 SpecialCasing.txt
의 로케일 비의존 매핑 )을 따라 파생되어야 한다.
몇몇 코드 포인트의 대소문자 매핑은 여러 코드 포인트를 생성할 수 있다. 이 경우 결과 문자열 길이는 원본과 다를 수 있다. toUpperCase
와 toLowerCase
는 문맥 민감하므로 대칭이 아니다.
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
String 객체의 경우 이 메서드는 valueOf
와 동일한 것을 반환한다.
이 메서드는 문자열 값을 UTF-16 코드 포인트 시퀀스로 해석한다.
Unicode 기본 대소문자 변환의 toUppercase 알고리즘을 사용한다는 점만 제외하고 String.prototype.toLowerCase
와 동일하게 동작한다.
이 메서드는 의도적으로 제네릭이다.
이 메서드는 고립된 선행 또는 후행 서로게이트(서로게이트 쌍을 이루지 않는)를 U+FFFD (REPLACEMENT CHARACTER)로 치환한 이 객체의 문자열 표현을 반환한다.
호출되면 다음 단계를 수행한다:
이 메서드는 문자열 값을 UTF-16 코드 포인트 시퀀스로 해석한다.
호출되면 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
The abstract operation TrimString takes arguments string (
공백 정의는
이 메서드는 문자열 값을 UTF-16 코드 포인트 시퀀스로 해석한다.
호출되면 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는 문자열 값을 UTF-16 코드 포인트 시퀀스로 해석한다.
호출되면 다음 단계를 수행한다:
이 메서드는 의도적으로 제네릭이다.
이 메서드는 호출될 때 다음 단계를 수행한다:
The abstract operation ThisStringValue takes argument value (
이 메서드는 문자열 값의 코드 포인트를 순회하며 각 코드 포인트를 문자열 값으로 반환하는 이터레이터 객체를 반환한다.
호출되면 다음 단계를 수행한다:
이 메서드의
String 인스턴스는 String 특수(exotic) 객체이며 해당 객체에 지정된 내부 메서드를 가진다. String 인스턴스는
String 인스턴스는
이 String 객체가 표현하는 문자열 값의 요소 개수.
String 객체가 초기화된 후 이 프로퍼티는 변하지 않는다. 속성은 { [[Writable]]:
String Iterator는 특정 String 인스턴스 객체에 대한 특정 순회를 나타내는 객체이다. String Iterator 객체에 대한 명명된
%StringIteratorPrototype% 객체:
이 프로퍼티는 속성 { [[Writable]]:
RegExp 객체는 하나의 정규 표현식과 그에 연관된 플래그들을 포함한다.
정규 표현식의 형식과 기능은 Perl 5 프로그래밍 언어의 정규 표현식 기능을 본뜬 것이다.
RegExp
연결될 수 있는 \u
\u
\u
u
여기 처음 두 줄은 CharacterClass 와 동등하다.
이 절의 여러 생성 규칙들은
이 절은
PropertyValueAliases.txt
에 열거된 속성 값 또는 속성 값 별칭이 아니면 구문 오류이다.
PropertyValueAliases.txt
에 열거된 속성 값 또는 그 별칭도 아니고, The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. node 에 있는 좌측 캡처 괄호(left-capturing parentheses)의 개수를 반환한다. 좌측 캡처 괄호 는 (
단말 기호에 의해 매치되는 모든 (
패턴 문자이다.
이 절은
It performs the following steps when called:
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. 포함하는 패턴 내에서 node 의 왼쪽에 나타나는
이 절은
It performs the following steps when called:
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
“
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
ControlEscape | 수치 값 | 코드 포인트 | 유니코드 이름 | 기호 |
---|---|---|---|---|
t
|
9 |
U+0009
|
CHARACTER TABULATION | <HT> |
n
|
10 |
U+000A
|
LINE FEED (LF) | <LF> |
v
|
11 |
U+000B
|
LINE TABULATION | <VT> |
f
|
12 |
U+000C
|
FORM FEED (FF) | <FF> |
r
|
13 |
U+000D
|
CARRIAGE RETURN (CR) | <CR> |
\0
은 <NUL> 문자를 나타내며 10진 숫자가 뒤따를 수 없다.
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
정규 표현식 패턴은 아래에 서술된 과정을 통해 추상 클로저(
u
와 v
둘 다 포함되지 않으면 BMP 패턴이고, 그렇지 않으면 유니코드 패턴이다. BMP 패턴은 입력 문자열을 BMP(기본 다국어 평면) 범위의 유니코드 코드 포인트들로 구성된 16비트 값 시퀀스로 해석하여 매칭한다. 유니코드 패턴은 입력 문자열을 UTF-16 으로 인코딩된 유니코드 코드 포인트 시퀀스로 해석하여 매칭한다. BMP 패턴의 동작을 설명하는 문맥에서 “문자(character)”는 단일 16비트 유니코드 BMP 코드 포인트를 의미한다. 유니코드 패턴의 동작을 설명하는 문맥에서 “문자”는 UTF-16 으로 인코딩된 하나의 코드 포인트를 의미한다 (
예를 들어, 소스 텍스트에서 하나의 비-BMP 문자 U+1D11E (MUSICAL SYMBOL G CLEF) 로 표현된 패턴을 생각하자. 유니코드 패턴으로 해석하면 단일 코드 포인트 U+1D11E 를 포함하는 (문자 1개짜리) 단일 요소 리스트가 된다. 그러나 BMP 패턴으로 해석하면 먼저 UTF-16 으로 인코딩되어 코드 유닛 0xD834 와 0xDD1E 두 요소로 이루어진 리스트가 된다.
패턴은 RegExp
구현체는 실제로 UTF-16 으로의 변환이나 역변환을 수행하지 않을 수 있으나, 이 명세의 의미론은 패턴 매칭 결과가 마치 그러한 변환이 수행된 것과 동일해야 한다고 요구한다.
아래 설명에서는 다음의 내부 데이터 구조를 사용한다:
RegExp Record 는 컴파일 과정 및 (필요하다면) 매칭 과정에서 필요한 RegExp 관련 정보를 저장하기 위해 사용되는 레코드 값이다.
다음 필드들을 가진다:
필드 이름 | 값 | 의미 |
---|---|---|
[[IgnoreCase]] | Boolean | RegExp 플래그에 |
[[Multiline]] | Boolean | RegExp 플래그에 |
[[DotAll]] | Boolean | RegExp 플래그에 |
[[Unicode]] | Boolean | RegExp 플래그에 |
[[UnicodeSets]] | Boolean | RegExp 플래그에 |
[[CapturingGroupsCount]] | 음이 아닌 정수 | 패턴 내 |
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
Pattern 은 추상 클로저 값으로 컴파일된다.
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
|
연산자는 두 개의 대안을 구분한다. 패턴은 먼저 왼쪽 |
로 건너뛰어진 패턴 부분 내의 캡처 괄호는 문자열이 아니라
/a|ab/.exec("abc")
는 결과
/((a)|(ab))((c)|(bc))/.exec("abc")
는 배열
["abc", "a", "a", undefined, "bc", undefined, "bc"]
를 반환하고,
["abc", "ab", undefined, "ab", "c", "c", undefined]
는 아니다. 두 대안을 시도하는 순서는 direction 값과 무관하다.
연속된
결과
The abstract operation RepeatMatcher takes arguments m (
비교:
/a[a-z]{2,4}/.exec("abcdefghi")
는
/a[a-z]{2,4}?/.exec("abcdefghi")
는
또한,
/(aa|aabaac|ba|b|c)*/.exec("aabaac")
는 위 선택 지점 순서에 따라 배열
["aaba", "ba"]
를 반환하며, 아래 어느 것도 아니다:
["aabaac", "aabaac"]
["aabaac", "c"]
위 선택 지점 순서는 (단항 표기) 두 수의 최대공약수를 계산하는 정규 표현식을 작성하는 데 사용될 수 있다. 다음 예는 10 과 15 의 gcd 를 계산한다:
"aaaaaaaaaa,aaaaaaaaaaaaaaa".replace(/^(a+)\1*,\1+$/, "$1")
이는 단항 표기 gcd
RepeatMatcher 의 단계
/(z)((a+)?(b+)?(c))*/.exec("zaacbbbcac")
이 표현식은 배열
["zaacbbbcac", "z", "ac", "a", undefined, "c"]
를 반환하고,
["zaacbbbcac", "z", "ac", "a", "bbb", "c"]
를 반환하지 않는다. 이는 가장 바깥 *
의 각 반복이 수량자 적용 대상
The abstract operation EmptyMatcher takes no arguments and returns
The abstract operation MatchTwoAlternatives takes arguments m1 (
The abstract operation MatchSequence takes arguments m1 (
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
y
플래그를 사용해도 ^
는 항상 Input 의 시작(또는 rer.[[Multiline]] 이
(?=
)
형식은 폭 0 양수 전방 탐색(positive lookahead)을 지정한다. 성공하려면 (?=
형식 안으로의 백트래킹은 없다(이 비정상적 동작은 Perl 에서 유래). 이는
예:
/(?=(a+))/.exec("baaabac")
는 첫 번째 b
직후 빈 문자열을 매치하므로 배열:
["", "aaa"]
를 반환한다.
전방 탐색 내부로의 백트래킹 부재를 보여주기 위해:
/(?=(a+))a*b\1/.exec("baaabac")
이 표현식은
["aba", "a"]
를 반환하며,
["aaaba", "a"]
는 아니다.
(?!
)
형식은 폭 0 음수 전방 탐색(negative lookahead)을 지정한다. 성공하려면
/(.*?)a(?!(a+)b\2c)\2(.*)/.exec("baaabaac")
이 표현식은 a
뒤에 즉시 n 개의 a
, 하나의 b
, 다시 n 개의 a
(첫 번째 \2
로 지정), 그리고 c
가 오는 패턴이 아닌 경우를 찾는다. 두 번째 \2
는 음수 전방 탐색 밖에 있으므로
["baaabaac", "ba", undefined, "abaac"]
을 반환한다.
The abstract operation IsWordChar takes arguments rer (
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
(
)
형태의 괄호는 \
+ 0이 아닌 10진수), 치환 문자열(replace String)에서 참조, 또는 정규 표현식 매칭 추상 클로저가 반환하는 배열의 일부로 사용될 수 있다. 괄호의 캡처 동작을 억제하려면 (?:
)
형태를 사용한다.
\
+ 0이 아닌 10진수 n 형태의 이스케이프는 n번째 캡처 괄호의 결과(
The abstract operation CharacterSetMatcher takes arguments rer (
The abstract operation BackreferenceMatcher takes arguments rer (
The abstract operation Canonicalize takes arguments rer (
CaseFolding.txt
가 ch 에 대한 simple 또는 common case folding 매핑을 제공하면 그 매핑을 적용한 결과 반환.ß
(U+00DF) 를 ss
나 SS
로 매핑하지 않는다. 그러나 Basic Latin 블록 밖의 코드 포인트를 그 안으로 매핑할 수 있다 (예: ſ
→ s
, K
→ k
). 이런 코드 포인트를 포함하는 문자열은 /[a-z]/ui
같은 정규 표현식에 매치된다.
Ω
(U+2126) 는 toUppercase 로 자기 자신을 반환하지만 toCasefold 로는 ω
(U+03C9) 와 Ω
(U+03A9) 와 함께 ω
로 매핑된다. 따라서 /[ω]/ui
, /[\u03A9]/ui
에 매치되지만 /[ω]/i
, /[\u03A9]/i
에는 매치되지 않는다. 또한 Basic Latin 블록 밖 코드 포인트가 그 안으로 매핑되지 않으므로 /[a-z]/i
에 매치되지 않는다.
The abstract operation UpdateModifiers takes arguments rer (
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It is defined piecewise over the following productions:
패턴이 대소문자를 무시하더라도 범위의 두 끝 문자 대소문자는 범위에 속하는 문자를 결정하는 데 여전히 중요하다. 예를 들어 /[E-F]/i
는 E
, F
, e
, f
만 매치하지만 /[E-f]/i
는 Unicode Basic Latin 블록의 모든 대소문자와 [
, \
, ]
, ^
, _
, `
기호를 매치한다.
-
문자는 리터럴로 취급되거나 범위를 나타낼 수 있다.
-
(U+002D HYPHEN-MINUS) 하나를 포함하는 \b
, \B
, 역참조는 제외된다. \b
는 백스페이스 문자를 의미하며, \B
와 역참조는 오류이다.
0
..9
10개를 포함하는 General_Category
, s) 가 General_Category (gc) 속성의 유효한 속성 값(또는 별칭)이면결과는 종종 두 개 이상의 범위로 구성된다. UnicodeSets
The abstract operation CharacterRange takes arguments A (
The abstract operation HasEitherUnicodeFlag takes argument rer (
The abstract operation WordCharacters takes argument rer (\b
, \B
, \w
, \W
판단에 사용되는 “단어 문자”들을 포함하는
The abstract operation AllCharacters takes argument rer (
The abstract operation MaybeSimpleCaseFolding takes arguments rer (
The abstract operation CharacterComplement takes arguments rer (
The abstract operation UnicodeMatchProperty takes arguments rer (
구현체는
예: Script_Extensions
(속성 이름) 과 scx
(별칭)는 유효하지만 script_extensions
, Scx
는 유효하지 않다.
열거된 속성은 UTS18 RL1.2 요구 사항의 상위 집합이다.
이 표의 항목 철자(대소문자 포함)는 Unicode Character Database 의 PropertyAliases.txt
파일에 사용된 철자와 일치하며, 그 철자는 안정성 정책에 따라 안정적으로 유지된다.
Property name and aliases | Canonical property name |
---|---|
General_Category |
General_Category |
gc |
|
Script |
Script |
sc |
|
Script_Extensions |
Script_Extensions |
scx |
Property name and aliases | Canonical property name |
---|---|
ASCII |
ASCII |
ASCII_Hex_Digit |
ASCII_Hex_Digit |
AHex |
|
Alphabetic |
Alphabetic |
Alpha |
|
Any |
Any |
Assigned |
Assigned |
Bidi_Control |
Bidi_Control |
Bidi_C |
|
Bidi_Mirrored |
Bidi_Mirrored |
Bidi_M |
|
Case_Ignorable |
Case_Ignorable |
CI |
|
Cased |
Cased |
Changes_When_Casefolded |
Changes_When_Casefolded |
CWCF |
|
Changes_When_Casemapped |
Changes_When_Casemapped |
CWCM |
|
Changes_When_Lowercased |
Changes_When_Lowercased |
CWL |
|
Changes_When_NFKC_Casefolded |
Changes_When_NFKC_Casefolded |
CWKCF |
|
Changes_When_Titlecased |
Changes_When_Titlecased |
CWT |
|
Changes_When_Uppercased |
Changes_When_Uppercased |
CWU |
|
Dash |
Dash |
Default_Ignorable_Code_Point |
Default_Ignorable_Code_Point |
DI |
|
Deprecated |
Deprecated |
Dep |
|
Diacritic |
Diacritic |
Dia |
|
Emoji |
Emoji |
Emoji_Component |
Emoji_Component |
EComp |
|
Emoji_Modifier |
Emoji_Modifier |
EMod |
|
Emoji_Modifier_Base |
Emoji_Modifier_Base |
EBase |
|
Emoji_Presentation |
Emoji_Presentation |
EPres |
|
Extended_Pictographic |
Extended_Pictographic |
ExtPict |
|
Extender |
Extender |
Ext |
|
Grapheme_Base |
Grapheme_Base |
Gr_Base |
|
Grapheme_Extend |
Grapheme_Extend |
Gr_Ext |
|
Hex_Digit |
Hex_Digit |
Hex |
|
IDS_Binary_Operator |
IDS_Binary_Operator |
IDSB |
|
IDS_Trinary_Operator |
IDS_Trinary_Operator |
IDST |
|
ID_Continue |
ID_Continue |
IDC |
|
ID_Start |
ID_Start |
IDS |
|
Ideographic |
Ideographic |
Ideo |
|
Join_Control |
Join_Control |
Join_C |
|
Logical_Order_Exception |
Logical_Order_Exception |
LOE |
|
Lowercase |
Lowercase |
Lower |
|
Math |
Math |
Noncharacter_Code_Point |
Noncharacter_Code_Point |
NChar |
|
Pattern_Syntax |
Pattern_Syntax |
Pat_Syn |
|
Pattern_White_Space |
Pattern_White_Space |
Pat_WS |
|
Quotation_Mark |
Quotation_Mark |
QMark |
|
Radical |
Radical |
Regional_Indicator |
Regional_Indicator |
RI |
|
Sentence_Terminal |
Sentence_Terminal |
STerm |
|
Soft_Dotted |
Soft_Dotted |
SD |
|
Terminal_Punctuation |
Terminal_Punctuation |
Term |
|
Unified_Ideograph |
Unified_Ideograph |
UIdeo |
|
Uppercase |
Uppercase |
Upper |
|
Variation_Selector |
Variation_Selector |
VS |
|
White_Space |
White_Space |
space |
|
XID_Continue |
XID_Continue |
XIDC |
|
XID_Start |
XID_Start |
XIDS |
Property name |
---|
Basic_Emoji |
Emoji_Keycap_Sequence |
RGI_Emoji_Modifier_Sequence |
RGI_Emoji_Flag_Sequence |
RGI_Emoji_Tag_Sequence |
RGI_Emoji_ZWJ_Sequence |
RGI_Emoji |
The abstract operation UnicodeMatchPropertyValue takes arguments p (ECMAScript 소스 텍스트) and v (ECMAScript 소스 텍스트) and returns 유니코드 속성 값. It performs the following steps when called:
PropertyValueAliases.txt
에 해당 속성 p 의 속성 값 또는 속성 값 별칭으로 열거됨.구현체는 PropertyValueAliases.txt
에 열거된 속성 값 및 별칭을 지원해야 한다. 상호 운용성을 위해 다른 속성 값 또는 별칭은 지원하면 안 된다.
예: Xpeo
, Old_Persian
은 Script_Extensions
값으로 유효하지만 xpeo
, Old Persian
은 유효하지 않다.
이 알고리즘은 UAX44 의 심볼릭 값 매칭 규칙과 다르다: 대소문자, Is
접두사도 지원되지 않는다.
The syntax-directed operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It is defined piecewise over the following productions:
The abstract operation RegExpCreate takes arguments P (
The abstract operation RegExpAlloc takes argument newTarget (
The abstract operation RegExpInitialize takes arguments obj (Object), pattern (
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
이 절은
It performs the following steps when called:
RegExp
extends
절 값으로 사용할 수 있다. 지정된 RegExp 동작을 상속하려는 서브클래스 super
호출을 포함해야 한다.이 함수가 호출되면 다음 단계를 수행한다:
패턴이
RegExp
이 함수는 정규 표현식
호출 시 다음 단계를 수행한다:
\0
이나 \1
같은 \c
이후 문맥에 대해 동일한 목적을 가진다.이름이 비슷하지만 RegExp.escape
는 다른 일을 한다. 전자는 패턴을 문자열로 표현하기 위해 이스케이프하고, 후자는 문자열을 패턴 안에 표현하기 위해 이스케이프한다.
The abstract operation EncodeForRegExpEscape takes argument cp (코드 포인트) and returns String. cp 를 매칭하는
RegExp.prototype
의 초기 값은
이 프로퍼티는 { [[Writable]]:
RegExp[%Symbol.species%]
는 set 접근자가
이 함수의
RegExp 프로토타입 메서드는 일반적으로 자신의
RegExp 프로토타입 객체는 다음을 만족한다:
RegExp 프로토타입 객체는 자체
RegExp.prototype.constructor
의 초기 값은
이 메서드는 string 에서 정규 표현식 패턴의 발생을 검색하고 매치 결과를 담은 Array 또는 매치 실패 시
호출 시 다음을 수행한다:
RegExp.prototype.dotAll
은 set 접근자가
RegExp.prototype.flags
는 set 접근자가
The abstract operation RegExpHasFlag takes arguments R (
RegExp.prototype.global
접근자 get 은 다음을 수행한다:
RegExp.prototype.hasIndices
접근자 get 은 다음을 수행한다:
RegExp.prototype.ignoreCase
접근자 get 은 다음을 수행한다:
이 메서드는 호출 시 다음을 수행한다:
이 메서드의
이 메서드는 호출 시 다음을 수행한다:
이 메서드의
RegExp.prototype.multiline
접근자 get 은 다음을 수행한다:
이 메서드는 호출 시 다음을 수행한다:
이 메서드의
호출 시 다음을 수행한다:
이 메서드의
검색 수행 시 이 RegExp 객체의
RegExp.prototype.source
접근자 get 은 다음을 수행한다:
The abstract operation EscapeRegExpPattern takes arguments P (String) and F (String) and returns String. It performs the following steps when called:
/
또는 ///
+F 는 RegExp.escape
와 EscapeRegExpPattern 은 목적이 다르다. 전자는 문자열을 패턴 내부 표현용으로, 후자는 패턴을 문자열 표현용으로 이스케이프한다.
이 메서드는 string 을 String 으로 변환한 결과를 왼쪽에서 오른쪽으로 정규 표현식 매치 경계를 찾아 나눈 부분 문자열들을 Array 에 저장해 반환한다. 매치된 부분들은 반환 배열에 포함되지 않고 구분자로만 사용된다.
/a*?/[Symbol.split]("ab")
→ ["a", "b"]
, /a*/[Symbol.split]("ab")
→ ["","b"]
)
string 이 빈 String (또는 변환 결과가 빈 String)이면 정규식이 빈 String 과 매치 가능한지 여부에 따라 결과가 달라진다. 가능하면 결과 배열은 비어 있고, 불가능하면 결과 배열은 빈 String 하나를 가진다.
정규식이 캡처 괄호를 포함하면 separator 매치 때마다 (
/<(\/)?([^<>]+)>/[Symbol.split]("A<B>bold</B>and<CODE>coded</CODE>")
결과:
["A", undefined, "B", "bold", "/", "B", "and", undefined, "CODE", "coded", "/", "CODE", ""]
limit 이
호출 시 다음을 수행한다:
이 메서드의
이 메서드는 이 RegExp 객체의
RegExp.prototype.sticky
접근자 get 은 다음을 수행한다:
호출 시 다음을 수행한다:
반환된 String 은 동일한 동작을 하는 또 다른 RegExp 객체로 평가되는
RegExp.prototype.unicode
접근자 get 은 다음을 수행한다:
RegExp.prototype.unicodeSets
접근자 get 은 다음을 수행한다:
The abstract operation RegExpExec takes arguments R (Object) and S (String) and returns Object 또는
호출 가능한
The abstract operation RegExpBuiltinExec takes arguments R (초기화된 RegExp 인스턴스) and S (String) and returns Array exotic object 또는
The abstract operation AdvanceStringIndex takes arguments S (String), index (음이 아닌 정수), and unicode (Boolean) and returns 정수. It performs the following steps when called:
The abstract operation GetStringIndex takes arguments S (String) and codePointIndex (음이 아닌 정수) and returns 음이 아닌 정수. S 를 UTF-16 인코딩된 코드 포인트 시퀀스로 해석하고 codePointIndex 번째 코드 포인트에 대응하는 코드 유닛 인덱스를 반환한다. 존재하지 않으면 S 길이를 반환한다. It performs the following steps when called:
Match Record 는 정규 표현식 매치 또는 캡처의 시작·끝 인덱스를 캡슐화하는
Match Record 는
Field Name | Value | Meaning |
---|---|---|
[[StartIndex]] | 음이 아닌 정수 | 문자열 시작으로부터 (포함) 매치가 시작되는 코드 유닛 수. |
[[EndIndex]] | [[StartIndex]] 이상 정수 | 문자열 시작으로부터 (배타) 매치가 끝나는 코드 유닛 수. |
The abstract operation GetMatchString takes arguments S (String) and match (
The abstract operation GetMatchIndexPair takes arguments S (String) and match (
The abstract operation MakeMatchIndicesIndexPairArray takes arguments S (String), indices (
RegExp 인스턴스는 RegExp 프로토타입으로부터 프로퍼티를 상속하는
RegExp 인스턴스는 다음 프로퍼티도 가진다:
RegExp String Iterator 는 특정 RegExp 인스턴스 객체를 사용하여 특정 String 인스턴스 객체 위를 순회(iteration)하는 과정을 표현하는 객체이다. RegExp String Iterator 객체에 대한 이름 있는
The abstract operation CreateRegExpStringIterator takes arguments R (Object), S (String), global (Boolean), and fullUnicode (Boolean) and returns Object. It performs the following steps when called:
%RegExpStringIteratorPrototype% 객체는 다음을 만족한다:
이 프로퍼티는 { [[Writable]]:
Internal Slot | Type | Description |
---|---|---|
[[IteratingRegExp]] | an Object | 순회에 사용되는 정규 표현식. |
[[IteratedString]] | a String | 순회 대상이 되는 String 값. |
[[Global]] | a Boolean | [[IteratingRegExp]] 가 global 인지 여부. |
[[Unicode]] | a Boolean | [[IteratingRegExp]] 가 Unicode 모드인지 여부. |
[[Done]] | a Boolean | 순회가 완료되었는지 여부. |