【问题标题】:How could I manipulate this array in Javascript for this kind of error checking?我如何在 Javascript 中操作这个数组来进行这种错误检查?
【发布时间】:2013-03-15 07:31:31
【问题描述】:

如何让 Javascript 检查数组并确保在用逗号分隔数组的每个元素后没有发生错误。例如,用户可以形成一个数组,其中一行中有两个逗号分隔一个元素而不是一个comma .. 不只是 comma ,还有其他任何错误的输入。

var cars=["Saab",,"Volvo","BMW"]; // Here , this array has an error , there's a double comma .
var cars=["Saab",*"Volvo","BMW"]; // this array has an error , there's an asterix.
var cars=["Saab","Volvo","BMW"];  // this array is the right one.

这是错误的数组

我可以使用什么 Javascript 函数或解决方案来确保检查数组并且其中没有错误。只有元素和逗号分隔,中间没有空格。

非常感谢您的帮助。

【问题讨论】:

  • 你想验证一个字符串是一个有效的javascript代码吗?
  • 已经抛出错误

标签: javascript javascript-framework


【解决方案1】:

使用静态代码分析器,例如 JSLintJSHint

除了网络托管的风味之外,后者还提供as a JavaScript library

【讨论】:

  • 好的 .. 但是您能帮忙实施这个错误检查的解决方案吗?
  • 我正在尝试控制在线应用程序的错误检查.. 不是检查我自己的代码
  • “在线控制我的应用程序的错误检查”是什么意思?这段代码来自哪里?是用户输入的吗?
  • 是的..它是使用输入的..所以我需要为它实现一个功能
  • 然后使用the browser bundle。但是,在接受和执行任意 JavaScript 代码时要非常小心,因为这是一个巨大的安全漏洞。
【解决方案2】:

您可以使用 jslint 获取 JavaScript 源并对其进行扫描,

visual studio、netbeans 或 eclipse 都有一个插件。

祝你好运!!!

【讨论】:

  • 我正在尝试控制我的在线应用程序的错误检查..而不是检查我自己的代码
【解决方案3】:

您的第二个带有*cars 示例将无法编译。

要检查双逗号,您可以遍历数组并检查未定义的值。

for(var i = 0; i<cars.length; i++) {
if(cars[i] === undefined) {
// do something
}
}

或者,您可以在生成数组之前尝试捕获它。有没有办法检查用户输入的空行?

【讨论】:

    【解决方案4】:

    鉴于您正在尝试验证用户输入的数据,我建议您重新评估您的方法。

    您不应要求最终用户以有效的 JavaScript 语法输入数据;这对您的用户来说很烦人。

    相反,我只需要一个文本区域和说明。

    这对人类来说更容易处理,解析也超级简单:

    var cars = document.getElementById('carstextarea').value.split('\n');
    // => ["Saab","Volvo","BMW"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-23
      • 2010-12-29
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多