# Функция ESC_JS() в WordPress
Функция esc_js()
предназначена для безопасного использования строк в JavaScript. Она экранирует (обрабатывает) одинарные кавычки, специальные HTML-символы, такие как <
, >
, &
, а также исправляет новые строки.
## Зачем нужна функция esc_js()
?
Эта функция используется для того, чтобы корректно отображать текст в JavaScript. Например, если вы хотите использовать текст в атрибуте HTML, таком как onclick
, это очень важно. Помните, что строка должна быть обернута в одинарные кавычки.
Функция также применяет фильтр js_escape
, который позволяет дополнительно менять результат.
## Как работает esc_js()
Функция использует другую функцию _wp_specialchars()
для обработки текстов.
### Хуки функции
- js_escape
— это фильтр, который вы можете использовать, если требуется модифицировать результат функции.
## Возвращаемое значение
Функция возвращает строку с экранированным текстом.
## Использование
Для использования функции нужно писать:
```php
esc_js( $text );
Параметры
$text
(строка) — текст, который необходимо экранировать (обработать).
Примеры использования
Пример 1: Основной пример
$text = <<<'TEXT'
одинарная кавычка ', двойная кавычка ", больше чем >, меньше чем <, амперсанд &
TEXT;
echo esc_js( $text );
Результат:
Вывод: одинарная кавычка ', двойная кавычка ", больше чем >, меньше чем <, амперсанд &
Пример 2: Пример из реальной жизни
Функция esc_attr()
обрабатывает строку для использования в HTML-атрибуте; а esc_js()
— для использования в JavaScript.
История изменений
- С версии 2.8.0 — функция была добавлена.
Код функции
Ниже представлен код функции esc_js()
, который вы можете найти в файле wp-includes/formatting.php
.
function esc_js( $text ) {
$safe_text = wp_check_invalid_utf8( $text );
$safe_text = _wp_specialchars( $safe_text, ENT_COMPAT );
$safe_text = preg_replace( '/(x)?0*(?(1)27|39);?/i', "'", stripslashes( $safe_text ) );
$safe_text = str_replace( "r", '', $safe_text );
$safe_text = str_replace( "n", 'n', addslashes( $safe_text ) );
return apply_filters( 'js_escape', $safe_text, $text );
}
Связанные функции
WordPress предоставляет несколько других функций для обработки строк:
esc_attr()
— экранирование строки для использования в атрибуте HTML.esc_html()
— экранирование строки для использования в HTML-коде.esc_sql()
— экранирование для безопасного использования в SQL-запросах.esc_url()
— экранирование URL.
Эти функции помогают обеспечить безопасность вашего сайта, предотвращая различные уязвимости.