Вопрос:

Uncaught SyntaxError: Неожиданный токен;

javascript jquery

1023 просмотра

2 ответа

876 Репутация автора

Я получаю Uncaught SyntaxError: Unexpected token ;в THE LINE NUMBER

    // HTML Helper
    var documentHtml = function(html){
        // Prepare
        var result = String(html)
            .replace(/<!DOCTYPE[^>]*>/i, '')
            .replace(/<(html|head|body|title|meta|script)([s>])/gi,'<div class="document-$1"$2')
            .replace(/</(html|head|body|title|meta|script)>/gi,'</div>')
        ;  // << THE LINE NUMBER 
        // Return
        return $.trim(result);
    };

Не уверен, что не так.

Автор: Debajyoti Das Источник Размещён: 03.03.2014 06:55

Ответы (2)


2 плюса

46678 Репутация автора

Решение

Проблема в:

/</(html|head|body|title|meta|script)>/gi

На момент написания, выделение SO показывает проблему с оригиналом: регулярное выражение, похоже, есть /</.

Так должно быть:

/<\/(html|head|body|title|meta|script)>/gi

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


IMO, использование прямой косой черты для регулярных выражений было самым неудачным синтаксическим решением JavaScript:

  1. Синтаксический анализ JavaScript затруднен из-за /запуска многострочных комментариев, однострочных комментариев, деления и регулярных выражений. (Sublime, мой выбор редактора, ошибается. Dreamweaver ошибается.)

  2. Это делает регулярные выражения для URI / URL особенно уродливыми.

Автор: Paul Draper Размещён: 03.03.2014 06:57

1 плюс

35326 Репутация автора

Попробуйте изменить:

.replace(/</(html|head|body|title|meta|script)>/gi,'</div>')

чтобы:

.replace(/<\/(html|head|body|title|meta|script)>/gi,'<\/div>')

Вам нужно сбежать /с помощью \Javascript

Автор: Felix Размещён: 03.03.2014 07:01
Вопросы из категории :
32x32