0

如果错误非常愚蠢,请原谅,因为我刚刚开始使用 Javascript(顺便说一下,我喜欢编程)我正在尝试创建一个小程序,并且在其中一个输入字段中,你有写下你的名字。我做了一个函数来防止你包含 &%$?¿ 等字符......

问题是该功能工作正常......有时是的,有时不是......它似乎取决于你在哪里输入无效字符,但由于我对编程的理解有限,我仍然无法理解我在做什么错误的。在这里,看看:

 function validate_input(text) {


    var notgood = "!"·$%&/()=?¿@#¬"; //cannot have this inside name

    var i = 0;   

    while (i <= notgood.length) { 

        if (text.indexOf(notgood.charAt(i)) ==-1) {
            ind = ind + 1;  
            break; 
        }
        else {  
            alert("Your name cannot include symbols");
            var text = prompt("Try again");
        }
    }}

一百万谢谢。只是一个小细节。我可以在不检查符号的情况下输入,但我觉得无法理解这个问题有点傻......

4

1 回答 1

1

如果您转义"notgood 字符串中的第二个,您的代码可能会起作用:

var notgood = "!\"·$%&/()=?¿@#¬";

尽管我看到了许多其他潜在问题,例如ind全球性问题。

或者您可以尝试使用正则表达式,它更适合您的用例

var notgood = /[!"·$%&/()=?¿@#¬]/; //cannot have this inside name

if ( notgood.test( text ) ) {
    alert("Your name cannot include symbols");
    text = prompt("Try again");
}
于 2012-10-09T09:12:03.713 回答