2011-08-18 29 views
2

我還沒有找到一個好的解決方案:我有一個文本框,其中用戶需要能夠輸入特定的信息。例如,該命令可能是「9030 OUT FU [1234 TEST]」。我需要「擦洗」這個文本框,以確保數據正好以這種格式輸入(不需要上限)。但是,這些不同類型的命令大約有50個。Javascript文本框「Scrubber」

我對JavaScript相當陌生,但有很好的方向可以理解它。這可能與JavaScript?一旦數據輸入到文本框中,它將運行一個函數來返回一些信息,並且下一個命令的文本框將被清除。沒有2個命令可以同時輸入。我只需要檢查每個命令的格式是100%準確的。任何幫助表示讚賞,謝謝。

回答

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

+1 Nicely done @ fireshadow52 –

+0

@Jason Gennaro謝謝。 :) – fireshadow52

+0

我想我會用更多的信息讓它變得更難,不知道我首先需要問什麼。我的「命令」有5個主要部分。它們如下所示:(指示符 - >命令 - >類型 - >位置 - >其他)。指示符是預設的字符組合,這意味着我列出了所有可能的組合,即9030,W17,JP18等。 – user703402

0

有一組關鍵字?並且可以將它們僅以某種方式組合起來?

看起來像一對正則表達式模式將能夠做到這一點。

例如:匹配「9030 OUT FU [1234 TEST]」正則表達式應該是:/\d{4} OUT FU \[\d{4}\]/

OUT FU和可以使用分別\w{3}\w{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/與正則表達式非常有幫助。

當你說「完全是這種格式」,你必須明白,我們不知道你的意思。有無數的模式可以用來描述你的例子。如果代碼有一串數字,然後是一個單詞,然後是另一個單詞,然後是左括號,然後是一串數字,然後是一個單詞,然後是右括號,則上面的正則表達式將匹配。