2016-07-26 34 views
0

我有一個reg-ex,我想在按鍵上運行。但是,我的代碼似乎不起作用。代碼如下。在按鍵上執行正則表達式?

var f1c = document.getElementsByClassName('f1t').value; 
var validator = new RegExp('^[0-9.]*$'); 
var runner = validator.test(f1c); 

if (runner){alert("Working");} 

我該如何重新組織這個語法才能正常工作?

編輯: https://jsfiddle.net/7ddwsm3m/

+2

所以附加事件的按鍵的元素。不知道在沒有按鍵代碼的情況下它將如何工作。 – epascarello

+0

我願意。如果我刪除'if(runner)',代碼就可以工作。我只是想知道我的語法是否有任何問題會阻止它運行。 –

+1

同樣,您沒有任何附加事件的代碼。你的代碼只在腳本執行時運行。我們應該在代碼中將https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener添加到元素中 – epascarello

回答

1

所以要聽每個按鍵。現在你只是測試輸入的初始值

var f1c = document.getElementsByClassName('f1t'); 
var validator = new RegExp('^[0-9.]*$'); 

f1c.addEventListener("keyup", function(ev){ 
    var value = ev.target.value; 
    var runner = validator.test(value); 

    if (runner){alert("Working");} 
})