Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.08.2021, 14:59
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Что-то не идёт. Может потому что как-то надо кириллическую букву А (вместо английской A) правильно прописать для алфавита? —

case"A":return void a.e(5).then(a.bind(null,16)).then((function(i){var a=i.definitions_A
Ответить с цитированием
  #12 (permalink)  
Старый 23.08.2021, 15:08
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Ну это для теста. В файле "app.js" я прописал кириллицей две буквы "аа" в самом начале списка слов. то же самое добавил в файле "3.js" в начале списка:
{"аа":0,

То есть, воспроизвел всё то же самое, как это работало для латиницы. Соответственно, мне кажется, если с первой буквой сработает, то и остальные пойдут. А так же, если перед этой кириллицей и тут — case"A":return — поставить англ. букву А, то переход по клику начинает работать.
Ответить с цитированием
  #13 (permalink)  
Старый 23.08.2021, 21:05
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Сообщение от Rise Посмотреть сообщение
Зачем вообще там кириллица? Это же приложение, как я понял, не для перевода, а толковый словарь английского языка.
Дело в том, что я хотел попробовать такой же функционал для словаря на кириллице сделать.
Ответить с цитированием
  #14 (permalink)  
Старый 24.08.2021, 14:10
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Rise, вот спасибо, уважаемый! Буду пробовать
Ответить с цитированием
  #15 (permalink)  
Старый 24.08.2021, 15:42
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Rise, если позволите, возникли вопросы. Я хотел бы сразу наладить возможность перехода к определению для первого слова с кириллицей, прописанного в базе — а дальше уже логику понял. Поэтому поначалу пытаюсь поменять только то, что запустит работу переходов по перечню слов. Для этого в самое начало базы добавил две буквы "а" кириллицей:

var N=["аа",


(И соответственно, в файл "3.js" добавил var a={"аа":0,)

И то же самое в №№ 3 и 4 (наши буквы "А", вместо английских):

//3
F={A:0,B:23288,C:45163,D:77117 ...
//4
W="ABCDEFGHIJKLMNOPQRSTUVWXYZ0",
//7
case"А":return void a.e(5).then(a.bind(null ...
//8
e.prototype.normalizeLetter=function(e){var i=e[0].toUpperCase();return i>="А"&&i<="Z"?i:"0"},


Во все регулярки во всём файле "app.js", в которых встречались "a-z" — добавил соответствующие регистрам диапазоны с кириллицей, А-Яа-яЁё —
/^[А-Яа-яЁёa-zA-Z0-9 '-]*$/
/[\.\d]|[А-ЯЁA-Z]|-$|^-/


Для "\W" — который означает "не-буква" — затрудняюсь найти соответствующую замену. Правильно ли понимаю, что в js при использовании шаблона \W — кириллица не опознаётся как буква, и именно поэтому ее следует изменить? И это же касается \W во второй строке, где есть экранирование? —

/\W/g
new RegExp("(\\W)"+i+"[\\.):]","ig");


В остальном — №1, №9, №10 — поменял и выяснилось, что переходить по первому слову с уже сделанными изменениями, не получается. Хотелось бы именно задействовать работу первого слова в базе, а в остальном я понял логику.

Последний раз редактировалось hdma, 24.08.2021 в 15:46.
Ответить с цитированием
  #16 (permalink)  
Старый 24.08.2021, 21:58
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Сообщение от Rise Посмотреть сообщение
partitionIndexFinish у тебя вернет undefined, потому что F['Б'] не определено
А если я пока что не прописывал полный алфавит с кириллицей, а лишь поменял первую букву английского алфавита на первую букву русского — в этом случае требуется указывать «Б» как ты показал? То есть, ниже везде где встречается «А» — это кириллическая А, а остальной алфавит — это англ. буквы:
//3
F={A:0,B:23288,C:45163,D:77117 ...
//4
W="ABCDEFGHIJKLMNOPQRSTUVWXYZ0",
//7
case"А":return void a.e(5).then(a.bind(null ...
//8
e.prototype.normalizeLetter=function(e){var i=e[0].toUpperCase();return i>="А"&&i<="Z"?i:"0"},

Просто хотелось бы запустить переход по клику с минимумом изменений, так как если всё править - наверняка можно ошибиться и тогда сложнее будет понять, где был недочёт.

И затрудняюсь понять как прописывать экранированную \W. Попробовал по такому же принципу экранировать [^A-Za-z0-9_], — но тоже не пошло:
s=new RegExp("(\\W)"+i+"

заменил на:

s=new RegExp("(\[\^A-Za-z0-9_\])"+i+"
Ответить с цитированием
  #17 (permalink)  
Старый 24.08.2021, 22:10
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Кстати, должны ли файлы «app.js» и «3.js» быть в UTF-8, или они по умолчанию в ANSI могут быть?
Ответить с цитированием
  #18 (permalink)  
Старый 25.08.2021, 00:40
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Rise, зафурычило, спасибище!

Мне бы хотелось ещё один момент попробовать решить с вашей помощью — в отношении сохранения ударений в словах, которые бы при наборе не мешали поиску. Наверняка вы знаете такой символ ударения, который когда ставишь перед буквой — она делается ударной:
Акце́нт

Вот тут пример поиска как бы сквозь это ударение — то есть, при наборе букв ударение не мешает поиску. Возможно ли то же самое осуществить в разбираемом здесь коде — например, удалив этот символ ударения именно для поиска, но чтобы он оставался видимым на экране?
Ответить с цитированием
  #19 (permalink)  
Старый 25.08.2021, 08:24
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Круто, спасибо! Только не удаётся правильно вписать строку с прокси. Пробовал вот так сразу после массива, а также ниже вписывать, через запятые и через точку запятой —

"-ways","-yl"],N = new Proxy(N,{get(o,p){return(o.hasOwnProperty(p)&&p!=' length')?o[p].replace('\u0301',''):o[p]}});console.log(N[0], N[1], N[2], N.length),F={А:0,Б:23288,
Ответить с цитированием
  #20 (permalink)  
Старый 25.08.2021, 12:36
Аспирант
Отправить личное сообщение для hdma Посмотреть профиль Найти все сообщения от hdma
 
Регистрация: 28.05.2012
Сообщений: 85

Rise,
Точно, консоль лишняя) Попробовал, но акцент не отображается — похоже, что replace('\u0301','') везде его затирает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается вставить код js в HTML garmoni Элементы интерфейса 3 05.09.2013 05:56
ошибка в js коде timotheus Элементы интерфейса 3 23.05.2012 09:02
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Ошибка в коде Js, Неправильно работает скрипт. Julia Panatova Общие вопросы Javascript 1 19.01.2011 14:12
Ошибка в коде Js, Неправильно работает скрипт. Julia Panatova Общие вопросы Javascript 7 07.01.2011 13:41