使用 IF 运算符区分给定数组中字母数字和非字母数字元素的操作

Use IF operator to diverge actions on alphanumeric and non-alphanumeric elements in a given array

我需要帮助处理可以同时包含字母数字和非字母数字元素的数组。

我需要对字母数字执行一个操作,对非字母数字执行另一个操作。

我一直在尝试不同的方式来声明语句 If 来区分这两个选项,但我没有想出正确的公式。

我能得到的最接近的解决方案太脏了,我只是告诉程序该元素必须不同于“”并且不同于“!”不同于“?”。不是一个干净的解决方案。有人可以帮忙吗?也许使用 RegEx 表达式?

  var myArray=["H","O","W"," ","A","R","E"," ","U","?"];
  var i=0;


  while(i<myArray.length){

  if(myArray[i]!=" " && myArray[i]!="!"&& myArray[i]!="?"&& myArray[i]!="."){
  //PERFORM ACTION 1 Example:
  return: "Hello";
  }


  else{
  //PERFORM ACTION 2 Example:
  return: "Goodbye";
  }

  i++;
  }

我已经尝试使用以下正则表达式,但没有成功:

if(myArray[i]!=[A-Za-z0-9_])

还有:

if(myArray[i]!=/\W/g)

None 他们工作 :( 请帮忙。

谢谢。

解决方案:

var myArray=["H","O","W"," ","A","R","E"," ","U","?"];
var i=0;
var alphaChecker = new RegExp("^[a-zA-Z0-9_]*$");



while(i<myArray.length){

if(alphaChecker.test(myArray[i])){
//PERFORM ACTION 1 Example:
myArray[i]= "Hello";
}


else{
//PERFORM ACTION 2 Example:
myArray[i]= "Goodbye";
}

i++;
}

return myArray;

这个效果很好。