【问题标题】:Is it possible to detect if a string contains javascript?是否可以检测字符串是否包含 javascript?
【发布时间】:2013-02-06 18:29:45
【问题描述】:

我正在尝试找出是否可以检测给定的字符串是否是 JavaScript 脚本,以便自动设置 Ace 编辑器。

“参与规则”是这样的,我可以拥有以下内容:

var x = function(){
    alert('hello world');
    }

...这可以作为 JS 安全地“验证”吗?不幸的是,这将存储在数据库中,因此我不能依赖文件类型扩展名。在最坏的情况下,我可能不得不将其标记为 JS 内容,但现在我正在努力避免这种情况。

【问题讨论】:

  • 我不认为你会用正则表达式来解决这个问题。
  • 您为什么要避免将脚本语言存储在数据库中?这似乎是最好的解决方案。
  • 我并不想避免将其存储在数据库中。我试图避免在数据库中将其标记为 JS。我正在探索检测进来的 value 是否是 JS 的可行性。

标签: javascript regex ace-editor


【解决方案1】:

这是一个重量级的解决方案,但您当然可以在其上运行完整的 Javascript 解析器。其中有许多是用 Javascript 编写的,例如 Uglify、Narcissus、Esprima、Acorn 和 ZeParser。

大概其中任何一个都会告诉您您的字符串是否包含合法的 Javascript,并在它包含的情况下为您提供完整的语法树。

不过,我不确定还有什么更轻量级的技术。

【讨论】:

  • 不要忘记用 javascript 编写的原始 javascript 解析器 - jslint。 linting 只是底层代码的一个应用程序。隐藏在 jslint 中的是一个非常快速、非常小的 js 解析器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2015-03-15
  • 2016-08-01
相关资源
最近更新 更多