Итак, я пытаюсь создать конвертер сценариев, который превращает простой текст в HTML. Вся идея в том, что есть два текстовых поля, одно для ввода пользователя, а другое - для вывода. Я пытаюсь использовать для этого оператор switch, но по какой-то причине переключатель переходит только в первый случай, а не в остальные. Таким образом, он выводит <br />
в нужных местах, но ничего не делает для других случаев. Но, насколько я понимаю, он должен go проходить через каждый случай в коммутаторе.
(Примечание: я создал этот сценарий в python, используя большое количество операторов if / else)
<script>
var btn = document.querySelector('.btn')
btn.addEventListener('click', converter);
function converter(){
var text = document.querySelector('.in_txt').value;
var text_input = text.trim();
var output_html='';
var counter;
var hey = 0;
if(text_input.length > 0){
output_html+='<p>'; //begin by creating paragraph
for(counter=0; counter < text_input.length; counter++){
switch (text_input[counter]){
case '\n':
output_html+='\n<br>';
break;
case ' ':
output_html+=' ';
break;
case '\t':
output_html+=' ';
break;
case 'FIRSTNAME':
output_html+='{% if cons.firstname %}{{cons.firstname}}{% else %}{% endif %}';
break;
case '—':
if(text_input[counter-1] != '—')
output_html+='—';
break;
case ' - ':
if(text_input[counter-1] != ' - ')
output_html+='—';
break;
case '[image]':
if(text_input[counter-1] != '[image]')
output_html+='<table role="presentation" border="0" cellspacing="0" cellpadding="0" width="100%">\n\t<tbody>\n\t\t<tr align="center">\n\t\t\t<td>\n\t\t\t\t<center>\n\t\t\t\t\t<a href="link"> <img border="0" style="display: block; margin: 0 auto; height: auto; width: 100%; min-width: 300px; max-width: 560px;" src="image" alt="alt"></a>\n\t\t\t\t</center>\n\t\t\t</td>\n\t\t</tr>\n\t</tbody>\n</table>\n';
break;
case '\n':
if(text_input[counter-1] != '\n')
output_html+='<br />';
break;
default:
output_html+=text_input[counter];
}
}
output_html+='</p>'; //finally close paragraph
}
document.querySelector('.out_html').value = output_html; // display output html
}
</script>