Как определить окончание строки файла

Я использую следующие ванильные функции JavaScript в моем коде. Они используют регулярные выражения и indexOf, но не требуют цитирования специальных символов в регулярных выражениях.

function addClass(el, cn) {
    var c0 = (" " + el.className + " ").replace(/\s+/g, " "),
        c1 = (" " + cn + " ").replace(/\s+/g, " ");
    if (c0.indexOf(c1) < 0) {
        el.className = (c0 + c1).replace(/\s+/g, " ").replace(/^ | $/g, "");
    }
}

function delClass(el, cn) {
    var c0 = (" " + el.className + " ").replace(/\s+/g, " "),
        c1 = (" " + cn + " ").replace(/\s+/g, " ");
    if (c0.indexOf(c1) >= 0) {
        el.className = c0.replace(c1, " ").replace(/\s+/g, " ").replace(/^ | $/g, "");
    }
}

Вы также можете использовать element.classList в современных браузерах.

51
задан nwahmaet 23 September 2008 в 14:34
поделиться

5 ответов

Вы могли использовать grep

egrep -l \r'\$ *
28
ответ дан Edward Anderson 7 November 2019 в 19:58
поделиться

Что-то вдоль линий:

perl -p -e 's[\r\n][WIN\n]; s[(?<!WIN)\n][UNIX\n]; s[\r][MAC\n];' FILENAME

Хотя некоторые из которых Regexp могут потребоваться переработка и приводящиесь.

Это выпустит ваш файл win, Mac или Unix в конце каждой строки. Хорошо, если ваш файл каким-то страшным беспорядком (или различимой) и имеет смешанные концовки.

14
ответ дан 7 November 2019 в 09:58
поделиться

Можно использовать file инструмент, который скажет Вам тип об окончании строки. Или, Вы могли просто использовать dos2unix -U, который преобразует все в окончания строки Unix, независимо от того, с чего это запустилось.

69
ответ дан Adam Rosenfield 7 November 2019 в 19:58
поделиться

Unix использует один байт, 0x0A (Перевод строки), в то время как окна используют два байта, 0x0D 0x0A (Возврат каретки, Перевод строки).

, Если Вы никогда не видите 0x0D, тогда это - вероятный Unix. Если Вы видите пар 0x0D 0x0A тогда, это - вероятный MS-DOS.

2
ответ дан Hugo 7 November 2019 в 19:58
поделиться

Символ использования Windows 13 & 10 для окончания строки, Unix только один из них (я не делаю rememeber который). Таким образом, можно заменить символ 13 & 10 для символа 13 или 10 (тот, которые используют Unix).

0
ответ дан TcKs 7 November 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: