24.08.2021, 22:10
|
Аспирант
|
|
Регистрация: 28.05.2012
Сообщений: 85
|
|
Кстати, должны ли файлы «app.js» и «3.js» быть в UTF-8, или они по умолчанию в ANSI могут быть?
|
|
24.08.2021, 23:14
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от hdma
|
требуется указывать «Б» как ты показал?
|
F={А:0,Б:23288,C:45163,D:77117 ...
Сообщение от hdma
|
но тоже не пошло
|
/\W/g так:
/[^А-Яа-яЁёA-Za-z0-9_]/g или /[^А-ЯЁA-Z0-9_]/ig или /[^А-ЯЁ\w]/ig
new RegExp("(\\W)"+i+"[\\.):]","ig") так:
new RegExp("([^А-ЯЁA-Z0-9_])"+i+"[\\.):]","ig") или new RegExp("([^А-ЯЁ\\w])"+i+"[\\.):]","ig")
Сообщение от hdma
|
быть в UTF-8
|
Да.
Последний раз редактировалось Rise, 24.08.2021 в 23:24.
|
|
25.08.2021, 00:40
|
Аспирант
|
|
Регистрация: 28.05.2012
Сообщений: 85
|
|
Rise, зафурычило, спасибище!
Мне бы хотелось ещё один момент попробовать решить с вашей помощью — в отношении сохранения ударений в словах, которые бы при наборе не мешали поиску. Наверняка вы знаете такой символ ударения, который когда ставишь перед буквой — она делается ударной:
Акце́нт
Вот тут пример поиска как бы сквозь это ударение — то есть, при наборе букв ударение не мешает поиску. Возможно ли то же самое осуществить в разбираемом здесь коде — например, удалив этот символ ударения именно для поиска, но чтобы он оставался видимым на экране?
|
|
25.08.2021, 07:02
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от hdma
|
символ ударения, который когда ставишь перед буквой
|
После буквы.
Сообщение от hdma
|
поиска как бы сквозь это ударение
|
Можно прокси сделать и удалять символ при чтении массива:
var N = ['aáa','cćc'];
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);
Еще, не забыть, так как в Юникоде буква Ё находится вне диапазона А-Я , то надо немного переделать №6 и №8, т.е. если №4 будет выглядеть так, то:
//4
W="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0"
//6
e.prototype.partitionIndexFinish=function(e){var i=this.normalizeLetter(e);return"Я"==i?F[0]:"0"==i?N.length:(i=W[W.indexOf(i)+1],F[i])}
//8
e.prototype.normalizeLetter=function(e){var i=e[0].toUpperCase();return i>="А"&&i<="Я"||i=='Ё'?i:"0"}
Последний раз редактировалось Rise, 25.08.2021 в 07:11.
|
|
25.08.2021, 08:24
|
Аспирант
|
|
Регистрация: 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,
|
|
25.08.2021, 08:36
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
hdma,
А это ;console.log(...) зачем?
Последний раз редактировалось Rise, 25.08.2021 в 08:41.
|
|
25.08.2021, 12:36
|
Аспирант
|
|
Регистрация: 28.05.2012
Сообщений: 85
|
|
Rise,
Точно, консоль лишняя) Попробовал, но акцент не отображается — похоже, что replace('\u0301','') везде его затирает.
|
|
25.08.2021, 12:38
|
Аспирант
|
|
Регистрация: 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]}}),F={А:0,Б:23288,C:45163,
|
|
25.08.2021, 18:43
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от hdma
|
везде его затирает.
|
Да, так я неправильно сделал. Надо все места смотреть, где используется N, и решать в каждом конкретном случае надо делать sanitize или нет:
function sanitize(s){return s.replace('\u0301','')}
Просто так в этом моменте помочь не могу, так как это довольно трудозатратно.
|
|
25.08.2021, 19:45
|
Аспирант
|
|
Регистрация: 28.05.2012
Сообщений: 85
|
|
Rise, я позже насчет этого обращусь, спасибо большое. Возник такой вопрос: возможно ли в этом приложении включить работу тегов, чтобы в файлах с определениями ими можно было обрамлять элементы и они соответственно отображались? Хотя бы курсив?
|
|
|
|