Участник:Edward Chernenko/parsetest.js
Материал из Абсурдопедии
Перейти к навигацииПерейти к поискуЗамечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
var options = {},
questions = {},
currentQuestion;
$( '.zmquiz-src' ).text().trim().split( /[\n\r]+/ ).forEach( function( line ) {
switch( line.substr( 0, 1 ) ) {
case '|': // Parameter of the quiz, e.g. type=
var keyval = line.replace( /^\|\s*/, '' ).split( '=' );
options[ keyval[0] ] = keyval[1];
break;
case '*': // Question, e.g. 'Who ate the Kolobok?'
currentQuestion = line.replace( /^\*\s*/, '' );
questions[currentQuestion] = {}; /* Answers */
break;
default: // Possible answer to the current question, e.g. 'Fox|points=2'
var rawParams = line.split( /\s*\|\s*/ ),
answerText = rawParams.shift(),
params = {}; /* E.g. { points: 2 } */
rawParams.forEach( function( pair ) {
var keyval = pair.split( '=' );
params[ keyval[0] ] = keyval[1];
} );
questions[currentQuestion][answerText] = params;
}
} );
console.log( JSON.stringify( options ) );
console.log( JSON.stringify( questions ) );