2013-08-30 3 views
-4

Donc, j'ai trouvé cela et il semble bien fonctionner et est extrêmement utile. J'ai juste besoin de savoir quel code "! = -1" faire. Il semble que le code ne fonctionne pas sans cela.Que fait le code javascript! = -1?

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

function validate_input(data){ 
    var iChars = "[email protected]#$%^&*()+=-[]\\;,./{}|:<>?~_"; /* 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> 
+2

regardez ce https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf –

+2

Il vérifie si le résultat de '.indexOf()' est ' -1', d'euh. Lisez la documentation 'String.indexOf'. – deceze

+0

Votre condition indique que si ce n'est pas égal à -1. – Sasidharan

Répondre

1

indexOf retours -1 lorsque la chaîne est introuvable.

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

En un mot, vous code vérifie si l'un des iChars caractères sont présents.

+0

Merci pour votre réponse! Alors "! = -1" devrait signifier "non non trouvé", car l'utilisation de seulement == devrait correspondre à des nombres différents, il est donc plus facile de dire ce que nous ne voulons pas que ce que nous voulons. – user2702889

0

Cela signifie "pas égal à -1". Et dans votre cas, la condition entière vérifie si caractère à la position i est un caractère spécial. La fonction indexOf renvoie -1 s'il n'y a pas un tel élément dans le tableau correspondant.

0

IndexOf renverra -1 si la chaîne n'a pas été trouvée dans l'objet.