2012-02-24 52 views
0

以下是隻輸入字母,數字,空格,del,退格的腳本。在這段代碼中,我需要做出改變,如果第一個位置的「輸入」是「空白區域」,並且在用戶輸入中沒有其他的輸入,那麼它應該返回false否則true複雜的字符串操作

JS

function usrInp(evt) { 
var char = (evt.which) ? evt.which : event.keyCode 
if (char > 64 && inp < 91 || char > 96 && char < 123 || char > 47 && char < 58 || char  == 127 || char == 8 || char == 32) { 
    return true; 
} 
else { 
    return false; 
} 
} 

FORM HTML

<form name="one" id="one"> 
    <input type="text" name="abc" id="abc" onkeypress="return usrInp(event)" /> 
</form> 
+0

你是否嘗試過使用正則表達式? – Fermin 2012-02-24 08:43:45

+0

@Fermin如何在這裏實現...? – sandbox 2012-02-24 08:46:23

回答

0

爲什麼不能正則表達式?

return input.match(/^[\w\s]*$/g) != null 

如果輸入僅包含A-Z,0-9,空格或下劃線,則返回true。

+0

但我需要檢查第一個位置的「輸入」是否爲「空白區域」,並且在用戶輸入中沒有進一步的字母數字字符,它應該返回false,對於所有其他情況,它應該返回true。這意味着,字符串可以在...上有'White Spaces'... – sandbox 2012-02-24 08:52:14

+0

編輯,略微改進它。 – Jivings 2012-02-24 08:54:16

+0

@sandbox因此,從一個空間開始?並沒有其他的字母或數字? – Jivings 2012-02-24 08:55:00

0

使用keypress事件不會捕獲退格鍵,您需要使用keyup。如果你想獲得被按下的鍵的ascii值,你可以使用:

function usrInp(evt) { 
    var char = (evt.which) ? evt.which : event.keyCode 
    return String.fromCharCode(char).match(/^[A-Z0-9 _]*$/); 
}