2012-02-24 12 views
0

以下は、アルファベット、数字、スペース、デル、バックスペースのみを入力するスクリプトです。このコードでは、最初の位置の「入力」が「空白」で、ユーザー入力にaphanumeric charactersがない場合は、それ以外の場合は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

+0

@Ferminここに実装する方法...? – sandbox

答えて

0

なぜregexではありませんか?

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

入力にA〜Z、0〜9、スペースまたはアンダースコアしか含まれていない場合はtrueを返します。

+0

しかし、最初の位置の「入力」が「空白」で、ユーザー入力にそれ以上の英数字がない場合はfalseを返し、その他の場合はtrueを返す必要があります。つまり、文字列に「White Spaces」を追加することができます。 – sandbox

+0

編集、少し改善しました。 – Jivings

+0

@sandboxそれでは、スペースで始まりますか?他の文字や数字はありませんか? – Jivings

0

keypressイベントを使用してもバックスペースキーは取得されません。そのためには、keyupを使用する必要があります。キーのascii値を取得したい場合は、次のように使用できます。

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