我还没有找到一个好的解决方案:我有一个文本框,用户需要在其中输入特定的信息。例如,命令可能是“9030 OUT FU [1234 TEST]”。我需要“清理”此文本框以确保数据的输入格式完全正确(不需要上限)。但是,这些不同类型的命令大约有50种。
我对javascript很新,但有良好的方向可以理解它。用javascript可以实现吗?将数据输入文本框后,它将运行一个函数以返回一些信息,并且文本框将清除以显示下一个命令。可以同时输入2个命令。我只需要检查每个命令的格式是否100%准确。感谢任何帮助,谢谢。
答案 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/对正则表达式非常有帮助。
当你说“确切的格式”时,你必须明白我们不知道你的意思。有无数种模式可用于描述您的示例。如果代码有一个数字字符串,然后是一个单词,然后是另一个单词,然后是一个左括号,然后是一串数字,然后是一个单词,然后是一个结束括号。上面的正则表达式将匹配。