Javascript文本框“Scrubber”

时间:2011-08-18 01:22:39

标签: javascript forms validation

我还没有找到一个好的解决方案:我有一个文本框,用户需要在其中输入特定的信息。例如,命令可能是“9030 OUT FU [1234 TEST]”。我需要“清理”此文本框以确保数据的输入格式完全正确(不需要上限)。但是,这些不同类型的命令大约有50种。

我对javascript很新,但有良好的方向可以理解它。用javascript可以实现吗?将数据输入文本框后,它将运行一个函数以返回一些信息,并且文本框将清除以显示下一个命令。可以同时输入2个命令。我只需要检查每个命令的格式是否100%准确。感谢任何帮助,谢谢。

3 个答案:

答案 0 :(得分:3)

<script type="text/javascript">   
function scrub(text) {
    var commands = new Array{"someCommand","anotherCommand",...};
    for (var i = 0; i <= commands.length; i++) {
        if (text.value.toLowerCase().equals(commands[i])) {
            //command is valid; do something here
        } else {
           alert("Invalid command");
        }
    }
    text.value = ""; //clears the text box
}
</script>

对于textarea执行此操作:

<textarea onblur="scrub(this);" ...></textarea>

答案 1 :(得分:0)

是否有一组关键字?它们可以只以某种方式组合吗?

看起来几个正则表达式模式将能够做到这一点。

例如:匹配“9030 OUT FU [1234 TEST]”正则表达式为:/\d{4} OUT FU \[\d{4}\]/

OUT FU,可分别用\w{3}\w{2}代替(除非您不希望允许任何字)。

答案 2 :(得分:0)

使用正则表达式。

HTML:

<input type="text" id="code" />
<input type="button" value="test" onclick="alert(checkCode())" />

的javascript:

function checkCode(){
var code = document.getElementById('code').value;
return code.match(/\d+ \w+ \w+ \[\d+ \w+\]/)!=null ? true : false;
}

http://gskinner.com/RegExr/对正则表达式非常有帮助。

当你说“确切的格式”时,你必须明白我们不知道你的意思。有无数种模式可用于描述您的示例。如果代码有一个数字字符串,然后是一个单词,然后是另一个单词,然后是一个左括号,然后是一串数字,然后是一个单词,然后是一个结束括号。上面的正则表达式将匹配。