Я пытаюсь создать что-то на JavaScript, что у меня может быть вход, который может быть всем как строка, xml, JavaScript и (строка не-JavaScript без кавычек) следующим образом:
//strings
eval("'hello I am a string'"); /* note the following proper quote marks */
//xml
eval(<p>Hello I am a XML doc</p>);
//javascript
eval("var hello = 2+2;");
Таким образом, это сначала 3 работает хорошо, так как они - простые собственные форматы JavaScript
но когда я пробую, используют этот в JavaScript
//plain-text without quotes
eval("hello I am a plain text without quotes");
//--SyntaxError: missing ; before statement:--//
Очевидно, JavaScript интерпретирует это как синтаксическую ошибку, потому что это думает свой JavaScript, бросающий SyntaxError.
Таким образом, что я хотел бы сделать это, чтобы зафиксировать эту ошибку и выполнить метод корректировки, если это происходит.
Я уже попробовал выгодой попытки, но она не работает, так как это продолжает возвращать Синтаксическую ошибку, как только она пытается выполнить код.
Любая справка очень ценилась бы
Аплодисменты :)
Дополнительная информация: Вообразите внешний файл, который JavaScript считал бы, с помощью spidermonkey, таким образом, это - материал небраузера (я не могу использовать HttpRequest, DOM, и т.д....).. не уверенный, если это имеет значение, но там это.:)
Вы уверены, что блок Try ... Catch не будет работать? Этот пример работает у меня в firefox.
try {
eval("hello I am a plain text without quotes");
} catch(err) {
alert("error caught");
}