Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Спасибо, капитан. А теперь внимание, вопрос. Зачем повторять действие row.title.split(/ – /) ? Метод split имеет побочный эффект или значение row.title между вызовами может ВНЕЗАПНО измениться кем-то ещё?
Уговорил, цикл нужен. Хоть явный (foreach), хоть неявный (регулярка).
Причём не факт, что именно по списку символов. Тут, как оказалось, не только тире, но и пробелы могут быть разными. Как бы не пришлось тут городить что-то сложное...
9 Я писал вам в послании — не сообщаться с блудниками;
10 впрочем не вообще с блудниками мира сего, или лихоимцами, или хищниками, или идолослужителями, ибо иначе надлежало бы вам выйти из мира сего.
11 Но я писал вам не сообщаться с тем, кто, называясь братом, остается блудником, или лихоимцем, или идолослужителем, или злоречивым, или пьяницею, или хищником; с таким даже и не есть вместе.
Боюсь, что на 3_14дара этот запрет не распространяется, ибо считает он, что никогда мы не будем братьями.
Я глубого этой темой на редактировании ебуков проникся: удаляешь тире по всей книге, редактор говорит что удалил тыщи раз, открываешь книгу - а она все еще полна тире. Как выяснилось, в юникоде есть пачка тире/дефисов/прочее, и когда чистишь книгу это может обернуться серьёзным гемороем. Вот тогда то я и научился распозновать эти юникодные какашки.
Большинство из символов выглядят почти одинаково, но есть один из них - тире, строка #18 сверху - который длинее все остальных, и он "касается" краев баундинг бокса символа. Его легко распознать если этот символ выделить: становится видно что он касается краев.
Тот, что в строке 8, тоже вроде бы касается краёв, хотя всё-же немного другой символ. Ради интереса написал чекер:
$('span.regexp').each(function(_, e) {
var i, s = $(e).text(), out = "";
for (i = 0; i < s.length; ++i) {
out += " " + s.charCodeAt(i);
}
console.log(out);
});
С пробелами геморрой был ещё до Юникода (NBSP появился в восьмибитных кодировках). Юникод просто увеличил количество представлений для некоторых символов.
Юникод непоследователен. Его создатели так и не определились, что соответствует коду: семантическое значение символа или его графический вид. Так появилось несколько символов, которые графически идентичны, но имеют разную семантику, и несколько символов, у которых назначение одинаковое, но несколько графических форм.
Но данный ГК даже не об этом. С создателем списка произведений, как я понял, нет обратной связи, поэтому договориться о формате, который бы однозначно парсился, невозможно. Приходится глотать кашу из разных разделителей.
неужели там так много вариаций?
в любом случае, это можно было в цикле сделать, по всем вариациям сделать, а не 100500 if else писать.
да даже если и так, если там встретится еще один дефис, то можно неплохо так говном наестся
Самое интересное, что название фильма/спектакля/книги/чего-то ещё может содержать дефисы и тире (и даже несколько штук), и фамилии бывают двойными, так что парсинг афиш — дело неблагодарное.
это значит то, что перед тем, как конечный пользователь увидит результат, оператор/контент менеджер проверит то, как распарсилось название композиции, и в случае необходимости они подкорректируют ее руками.
хотя, может я фантазирую, и в яндекс-музыку все заносится руками, но если бы была вероятность профакапиться в том, как алгоритм ее распарсит, я бы посадил людей, которые будут либо аппрувить это, либо руками вносить правки
Что поступает на вход в 8-й строке и чем оно отличается от 3-й строки?
Причём не факт, что именно по списку символов. Тут, как оказалось, не только тире, но и пробелы могут быть разными. Как бы не пришлось тут городить что-то сложное...
"... С блудниками да не общайтесь"
Боюсь, что на 3_14дара этот запрет не распространяется, ибо считает он, что никогда мы не будем братьями.
Да, я немного опоздал)
Блин, ну лучше бы скрытым постам въебали по 28 плюсов, чем тратить ботов на разжигание сёминой жопы...
при тесте доки, долго возмущалисть что "bash ––version" не работает почему то.
Но в любом случае цикл не нужен, раз уж мы используем регулярки. Все варианты тире можно проверить одним выражением.
Я глубого этой темой на редактировании ебуков проникся: удаляешь тире по всей книге, редактор говорит что удалил тыщи раз, открываешь книгу - а она все еще полна тире. Как выяснилось, в юникоде есть пачка тире/дефисов/прочее, и когда чистишь книгу это может обернуться серьёзным гемороем. Вот тогда то я и научился распозновать эти юникодные какашки.
Большинство из символов выглядят почти одинаково, но есть один из них - тире, строка #18 сверху - который длинее все остальных, и он "касается" краев баундинг бокса символа. Его легко распознать если этот символ выделить: становится видно что он касается краев.
Выхлоп для строк с тире следующий:Первый регекс отличается от третьего использованием , у второго и четвёртого кодпоинты отличаются на единицу.
но в юникоде их есть еще больше:
http://www.fileformat.info/info/unicode/category/Pd/list.htm
в юникоде подобных есть тоже пачка - http://www.fileformat.info/info/unicode/category/Zs/list.htm - но к счастью я только на 0xA0 натыкался.
Почему-то у вебмакак соблюсти баланс escape/unescape не получается.
Юникод непоследователен. Его создатели так и не определились, что соответствует коду: семантическое значение символа или его графический вид. Так появилось несколько символов, которые графически идентичны, но имеют разную семантику, и несколько символов, у которых назначение одинаковое, но несколько графических форм.
Но данный ГК даже не об этом. С создателем списка произведений, как я понял, нет обратной связи, поэтому договориться о формате, который бы однозначно парсился, невозможно. Приходится глотать кашу из разных разделителей.
гемор с кодировками - это долгосрочно, постоянно и без остановки.
в любом случае, это можно было в цикле сделать, по всем вариациям сделать, а не 100500 if else писать.
да даже если и так, если там встретится еще один дефис, то можно неплохо так говном наестся
Андерс Т. — Болен Д. — Ты — моё сердце, ты — моя душа.
хотя, может я фантазирую, и в яндекс-музыку все заносится руками, но если бы была вероятность профакапиться в том, как алгоритм ее распарсит, я бы посадил людей, которые будут либо аппрувить это, либо руками вносить правки