Поддержка русских символов в тегах

This commit is contained in:
Fovway 2025-10-19 14:49:52 +07:00
parent 350e8b3471
commit 6c6191480e
2 changed files with 63 additions and 2 deletions

61
RUSSIAN_TAGS_UPDATE.md Normal file
View File

@ -0,0 +1,61 @@
# Обновление поддержки русских символов в тегах
## Описание изменений
Добавлена поддержка русских символов в тегах приложения NoteJS. Теперь пользователи могут использовать кириллические символы в тегах наряду с латинскими буквами и цифрами.
## Измененные файлы
### `/public/app.js`
1. **Функция `extractTags`** (строка 45):
- Изменено регулярное выражение с `/#(\w+)/g` на `/#([а-яё\w]+)/gi`
- Добавлен флаг `i` для регистронезависимого поиска
- Добавлена поддержка русских букв (а-я, ё)
2. **Функция `makeTagsClickable`** (строка 62):
- Изменено регулярное выражение с `/#(\w+)/g` на `/#([а-яё\w]+)/gi`
- Добавлен флаг `i` для регистронезависимого поиска
- Добавлена поддержка русских букв (а-я, ё)
## Поддерживаемые символы в тегах
- Латинские буквы (a-z, A-Z)
- Русские буквы (а-я, А-Я, ё, Ё)
- Цифры (0-9)
- Подчеркивания (_)
## Примеры использования
Теперь поддерживаются теги:
- `#работа` - русский тег
- `#проект` - русский тег
- `#важно` - русский тег
- `#work` - латинский тег
- `#задача1` - смешанный тег с цифрами
- `#meeting_встреча` - смешанный тег
## Тестирование
Создан тестовый файл `test_russian_tags.html` для проверки функциональности:
- Извлечение русских тегов из текста
- Преобразование тегов в кликабельные элементы
- Обработка смешанных тегов (русские + латинские символы)
## Обратная совместимость
Изменения полностью обратно совместимы:
- Существующие теги с латинскими символами продолжают работать
- Все функции фильтрации и поиска работают с русскими тегами
- Дизайн и стили тегов остались без изменений
## Технические детали
Регулярное выражение `/#([а-яё\w]+)/gi`:
- `#` - символ решетки в начале тега
- `[а-яё\w]+` - один или более символов из диапазона:
- `а-я` - русские строчные буквы
- `ё` - русская буква ё
- `\w` - латинские буквы, цифры и подчеркивания
- `g` - глобальный поиск (все совпадения)
- `i` - регистронезависимый поиск

View File

@ -42,7 +42,7 @@ function autoExpandTextarea(textarea) {
// Функция для извлечения тегов из текста заметки
function extractTags(content) {
const tagRegex = /#(\w+)/g;
const tagRegex = /#([а-яё\w]+)/gi;
const tags = [];
let match;
@ -59,7 +59,7 @@ function extractTags(content) {
// Функция для преобразования тегов в заметках в кликабельные элементы
function makeTagsClickable(content) {
// Сначала находим все теги, которые еще не обернуты в HTML
const tagRegex = /#(\w+)/g;
const tagRegex = /#([а-яё\w]+)/gi;
let result = content;
let match;