如何处理Javascript中的此类错误?

如何处理Javascript中的此类错误?,javascript,javascript-framework,Javascript,Javascript Framework,如何确保数组中未输入两个逗号。。这适用于从用户输入生成数组的web应用程序,它是一个文本字段。。我不能把它换成别的东西 例如变量名称=[“Kim”、“Andrew”、“Ashley”] 在这个数组中,我们有两个连续的逗号,而不是一个。。我如何确保如果用户输入了任何不好的字符,我就将其删除。。例如逗号、圆点等。。对于额外逗号的示例,考虑到我没有其他选项,只能处理生成这样一个数组的文本字段,如何实现这一点。在您的情况下,[“Kim”、“Andrew”、“Ashley”]中的第二个元素的值未定义 请参

如何确保数组中未输入两个逗号。。这适用于从用户输入生成数组的web应用程序,它是一个文本字段。。我不能把它换成别的东西

例如<代码>变量名称=[“Kim”、“Andrew”、“Ashley”]


在这个数组中,我们有两个连续的逗号,而不是一个。。我如何确保如果用户输入了任何不好的字符,我就将其删除。。例如逗号、圆点等。。对于额外逗号的示例,考虑到我没有其他选项,只能处理生成这样一个数组的文本字段,如何实现这一点。在您的情况下,
[“Kim”、“Andrew”、“Ashley”]
中的第二个元素的值未定义

请参阅工作小提琴:

两个连续的逗号(或前导逗号)是一个,它增加下一个成员的索引。省略的成员不作为数组的属性存在。要查找此类成员,可以使用中的
操作符:

var a = [,0,1,,  , ,2,3,,  ,];

var i = a.length;

while (i--) {

  if (!(i in a)) {  // returns true if a has no index i
    a.splice(i, 1);
  }
}

alert(a); // 0,1,2,3

这还处理数组文本中的额外空格。

这不是一个bug,只是表单中的空条目被添加到数组中。试试这个:

//assume your array has been filled up

var mod_names = names.join("#"); // you can use any delimeter apart from '#'

if(mode_names.indexOf(" ") > -1){
  mode_names.replace(/\s+/gi, "");
}
mode_names.replace(/#/gi, " ");
mod_names = mod_names.split(); // the default is a space char
names = mode_names;

在代码中,我被要求自己实际操作它。额外的逗号可以像中一样处理。你还需要处理哪些其他类型的“无效”输入?你需要如何处理?我想否决这一点,但没有这样做的声誉…看看你前面问题的其他答案,你应该找到答案
var a = [,0,1,,  , ,2,3,,  ,];

var i = a.length;

while (i--) {

  if (!(i in a)) {  // returns true if a has no index i
    a.splice(i, 1);
  }
}

alert(a); // 0,1,2,3
//assume your array has been filled up

var mod_names = names.join("#"); // you can use any delimeter apart from '#'

if(mode_names.indexOf(" ") > -1){
  mode_names.replace(/\s+/gi, "");
}
mode_names.replace(/#/gi, " ");
mod_names = mod_names.split(); // the default is a space char
names = mode_names;