因此,我试图创建一个将纯文本转换为HTML的脚本转换器。整个想法是,有两个文本框,一个具有用户输入,另一个是输出。我正在尝试使用switch语句来执行此操作,但是由于某种原因,该开关只会转到第一种情况,而不会转到其余情况。因此,它在正确的位置输出<br />
,但在其他情况下不执行任何操作。但是据我所知,它应该在切换中遇到的所有情况。
(注意,我使用大量的if / else语句在python中创建了此脚本)
<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>
text_input [counter]总是存储单个字符,例如'a',''或换行符('\ n'),因此它永远不会等于“ FIRSTNAME”,“” [image]“以及任何其他一个以上字符的字符串。由于这些原因,您的条件包含更多字符,因此上面的代码将永远无法满足。