-4

所以我发现了这个,它似乎工作正常并且非常有帮助。我只需要知道代码“!= -1”做什么。没有它,代码似乎无法工作。

<html>
<head>
<script language="javascript">

function validate_input(data){
   var iChars = "!@#$%^&*()+=-[]\\;,./{}|:<>?~_"; /* characters not allowed  */
   for (var i = 0; i < data.length; i++) {
    if (iChars.indexOf(data.charAt(i)) != -1) {
      alert ("Your filename has special characters. \nThese are not allowed.");
    return false;
    }
  }
  if(data.length < 1){
  alert("File Name is required");
    return false;
  }

}

</script>

</head>

<body>
<form action="#" method="Get" onSubmit="return validate_input(document.getElementById('filename').value);">
<input type="text" id="filename" name="filename">
<input type="submit">
</form>
</body>
</html>
4

3 回答 3

1

indexOf-1找不到字符串时返回。

"abc".indexOf("def"); // -1
"abc".indexOf("ab"); // 0
"abc".indexOf("c"); // 2

简而言之,您的代码检查是否iChars存在任何字符。

于 2013-08-30T09:58:44.230 回答
0

它代表“不等于-1”。在你的情况下,整个条件检查位置i的 char 是否是特殊字符。indexOf如果对应数组中没有此类项目,则函数返回 -1。

于 2013-08-30T09:58:44.510 回答
0

如果在对象中找不到字符串,IndexOf 将返回 -1。

于 2013-08-30T09:58:51.073 回答