Spec-Zone.ru › JavaScript

RegExp.prototype.source

Базовая версия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

Свойство-аксессор source экземпляров RegExp возвращает строку, содержащую исходный текст этого регулярного выражения, без двух косых черт по обеим сторонам или каких-либо флагов.

Попробовать

const regex = /fooBar/gi;

console.log(regex.source);
// Expected output: "fooBar"

console.log(new RegExp().source);
// Expected output: "(?:)"

console.log(new RegExp("\n").source === "\\n");
// Expected output: true (starting with ES5)
// Due to escaping

Описание

Концептуально, свойство source — это текст между двумя косыми чертами в литерале регулярного выражения. Язык требует, чтобы возвращаемая строка была должным образом экранирована, чтобы при объединении source с косой чертой с обоих концов образовывался синтаксически корректный литерал регулярного выражения. Например, для new RegExp("/"), source является \\/, потому что, если он генерирует /, то полученный литерал становится ///, который является строчным комментарием. Аналогично, все разделители строк будут экранированы, поскольку символы разделителей строк нарушат целостность литерала регулярного выражения. Для других символов требований нет, если только результат является синтаксически корректным. Для пустых регулярных выражений возвращается строка (?:).

Примеры

Использование source

const regex = /fooBar/gi;

console.log(regex.source); // "fooBar", doesn't contain /.../ and "gi".

Пустые регулярные выражения и экранирование

new RegExp().source; // "(?:)"

new RegExp("\n").source === "\\n"; // true, starting with ES5

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-get-regexp.prototype.source

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
source
1
12
1
5
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
empty_regex_string
6
12
38
15
5
18
38
14
4.2
1.0
4.4
4.2
1.0.0
1.0
0.10.0
escaping
73
12
38
60
6
73
38
52
6
11.0
73
6
1.0.0
1.0
12.0.0
prototype_accessor
48
12
41
35
1.3
48
41
35
1
5.0
48
1
1.0.0
1.0
6.0.0

См. также

  • RegExp.prototype.flags

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API