Используйте синтаксический анализатор JavaScript, например acorn
, и проверьте, можете ли вы правильно проанализировать содержимое текстовой области.
В приведенном ниже фрагменте кода используется acorn
, чтобы попытаться проанализировать содержимое двух текстовых областей.один содержит действительный JavaScript, а другой - простой текст.
function validateJs(textareaId) {
const textarea = document.getElementById(textareaId);
try {
acorn.Parser.parse(textarea.value);
} catch(e) {
textarea.style.backgroundColor = 'red';
return false;
}
textarea.style.backgroundColor = 'green';
return true;
}
validateJs('good');
validateJs('bad');
<script src="https://cdnjs.cloudflare.com/ajax/libs/acorn/6.1.1/acorn.js"></script>
<textarea id="good" rows="4" cols="25">
function add(a, b) {
return a + b;
}
</textarea>
<textarea id="bad" rows="4" cols="25">
Hello world!
</textarea>