You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/05-data-types/03-string/3-truncate/solution.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
Строка, которую мы возвращаем, должна быть не длиннее `maxlength`, поэтому, если мы обрезаем строку, то мы должны убрать на один символ больше, чем `maxlength` — чтобы хватило места на многоточие.
2
2
3
-
Имейте в виду, что в качестве многоточия здесь используется `…` — ровно один специальный юникодный символ. Это не то же самое, что `...` — три точки.
3
+
Имейте в виду, что в качестве многоточия здесь используется `…` — ровно один специальный Юникодный символ. Это не то же самое, что `...` — три точки.
|`\u{X…XXXXXX}` (от 1 до 6 шестнадцатеричных цифр)|Символ в кодировке UTF-32 с шестнадцатеричным кодом от U+0000 до U+10FFFF. Некоторые редкие символы кодируются двумя 16-битными словами и занимают 4 байта. Так можно вставлять символы с длинным кодом. |
Также можно добавлять юникодные символы по их кодам, используя `\u` с шестнадцатеричным кодом символа:
504
+
Также можно добавлять Юникодные символы по их кодам, используя `\u` с шестнадцатеричным кодом символа:
505
505
506
506
```js run
507
507
// 90 — 5a в шестнадцатеричной системе счисления
@@ -610,7 +610,7 @@ alert( '𝒳'.charCodeAt(1).toString(16) ); // dcb3, между 0xdc00 и 0xdfff
610
610
611
611
Например, буква `a` — это основа для `àáâäãåā`. Наиболее используемые составные символы имеют свой собственный код в таблице UTF-16. Но не все, в силу большого количества комбинаций.
612
612
613
-
Чтобы поддерживать любые комбинации, UTF-16 позволяет использовать несколько юникодных символов: основной и дальше один или несколько особых символов-знаков.
613
+
Чтобы поддерживать любые комбинации, UTF-16 позволяет использовать несколько Юникодных символов: основной и дальше один или несколько особых символов-знаков.
614
614
615
615
Например, если после `S` добавить специальный символ "точка сверху" (код `\u0307`), отобразится Ṡ.
Copy file name to clipboardExpand all lines: 9-regular-expressions/01-regexp-introduction/article.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ let regexp = new RegExp(`<${tag}>`); // то же, что /<h2>/ при отв
56
56
: Включает режим "dotall", при котором точка `pattern:.` может соответствовать символу перевода строки `\n` (рассматривается в главе <info:regexp-character-classes>).
57
57
58
58
`pattern:u`
59
-
: Включает полную поддержку юникода. Флаг разрешает корректную обработку суррогатных пар (подробнее об этом в главе <info:regexp-unicode>).
59
+
: Включает полную поддержку Юникода. Флаг разрешает корректную обработку суррогатных пар (подробнее об этом в главе <info:regexp-unicode>).
60
60
61
61
`pattern:y`
62
62
: Режим поиска на конкретной позиции в тексте (описан в главе <info:regexp-sticky>)
Copy file name to clipboardExpand all lines: 9-regular-expressions/03-regexp-unicode/article.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@
4
4
5
5
Этого диапазона не хватает для того, чтобы закодировать все символы. Поэтому некоторые редкие символы кодируются с помощью 4 байтов, например `𝒳` (математический X) или `😄` (смайлик), некоторые иероглифы, и т.п.
6
6
7
-
В таблице ниже приведены юникоды нескольких символов:
7
+
В таблице ниже приведены Юникоды нескольких символов:
8
8
9
-
| Символ | Юникод | Количество байт в юникоде|
9
+
| Символ | Юникод | Количество байт в Юникоде|
10
10
|------------|---------|--------|
11
11
| a |`0x0061`| 2 |
12
12
| ≈ |`0x2248`| 2 |
@@ -29,14 +29,14 @@ alert('𝒳'.length); // 2
29
29
30
30
Регулярные выражения также по умолчанию воспринимают 4-байтные "длинные символы" как пары 2-байтных. Как и со строками, это может приводить к странным результатам. Мы увидим примеры чуть позже, в главе <info:regexp-character-sets-and-ranges>.
31
31
32
-
В отличие от строк, у регулярных выражений есть специальный флаг `pattern:u`, который исправляет эту проблему. При его наличии регулярное выражение работает с 4-байтными символами правильно. И, кроме того, становится доступным поиск по юникодным свойствам, который мы рассмотрим далее.
32
+
В отличие от строк, у регулярных выражений есть специальный флаг `pattern:u`, который исправляет эту проблему. При его наличии регулярное выражение работает с 4-байтными символами правильно. И, кроме того, становится доступным поиск по Юникодным свойствам, который мы рассмотрим далее.
33
33
34
34
## Юникодные свойства \p{...}
35
35
36
36
```warn header="Не поддерживается в некоторых старых браузерах"
37
-
Несмотря на то, что это часть стандарта с 2018 года, юникодные свойства не поддерживаются в Firefox до 78 версии и в Edge до 79 версии.
37
+
Несмотря на то, что это часть стандарта с 2018 года, Юникодные свойства не поддерживаются в Firefox до 78 версии и в Edge до 79 версии.
38
38
39
-
Существует библиотека [XRegExp](http://xregexp.com), которая реализует "расширенные" регулярные выражения с кросс-браузерной поддержкой юникодных свойств.
39
+
Существует библиотека [XRegExp](http://xregexp.com), которая реализует "расширенные" регулярные выражения с кросс-браузерной поддержкой Юникодных свойств.
40
40
```
41
41
42
42
Каждому символу в кодировке Юникод соответствует множество свойств. Они описывают к какой "категории" относится символ, содержат различную информацию о нём.
Давайте сделаем более универсальный шаблон, который ищет символы, используемые в словах, для любого языка. Это очень легко с Юникод-свойствами: `pattern:[\p{Alpha}\p{M}\p{Nd}\p{Pc}\p{Join_C}]`.
73
73
74
-
Расшифруем его. По аналогии с классом `pattern:\w`, мы делаем свой набор, который включает в себя символы со следующими юникодными свойствами:
74
+
Расшифруем его. По аналогии с классом `pattern:\w`, мы делаем свой набор, который включает в себя символы со следующими Юникодными свойствами:
75
75
76
76
-`Alphabetic` (`Alpha`) - для букв,
77
77
-`Mark` (`M`) - для акцентов,
@@ -90,10 +90,10 @@ let str = `Hi 你好 12`;
90
90
alert( str.match(regexp) ); // H,i,你,好,1,2
91
91
```
92
92
93
-
Конечно, этот шаблон можно адаптировать: добавить юникодные свойства или убрать. Более подробно о них было рассказано в главе <info:regexp-unicode>.
93
+
Конечно, этот шаблон можно адаптировать: добавить Юникодные свойства или убрать. Более подробно о них было рассказано в главе <info:regexp-unicode>.
94
94
95
95
```warn header="Юникодные свойства не работают в некоторых старых браузерах"
96
-
Поддержка юникодных свойств `pattern:p{…}` была добавлена в Edge и Firefox относительно недавно. Если нужно реализовать поддержку `pattern:p{…}` для устаревших версий этих браузеров, можно использовать библиотеку [XRegExp](http://xregexp.com/).
96
+
Поддержка Юникодных свойств `pattern:p{…}` была добавлена в Edge и Firefox относительно недавно. Если нужно реализовать поддержку `pattern:p{…}` для устаревших версий этих браузеров, можно использовать библиотеку [XRegExp](http://xregexp.com/).
97
97
98
98
Или же использовать диапазоны символов в интересующем нас языке, например `pattern:[а-я]` для кириллицы.
0 commit comments