3

Webページに入力できるのは、英語、数字、および特殊文字のみです。jqueryまたはjavascriptを使用してこれを適用したいと思います。実際、私のアプリケーションは2つの言語で書かれているので、そのためにこれを実行したいと思います。私もアラビア語で同じことをしたいです。助けてください。どうやってやるの?

4

4 に答える 4

4

JavaScriptのreplaceメソッドを使用する次のコードを試すことができます。replaceメソッドは正規表現パターンを受け入れるため、テキストボックスに入力したい/したくないものをほぼすべて定義できます。

<script type="text/javascript">

      $('#textboxID').bind('keyup blur',function() { 
            $(this).val($(this).val().replace(/[^A-Za-z0-9]/g,''))
        });

</script>

これを試すためのjsFiddleは次のとおりです:http://jsfiddle.net/leniel/rtE54/


もう少し考えた後、私はこのコードを実装しました:

$("#mytextbox").on("keypress", function(event) {

    // Disallow anything not matching the regex pattern (A to Z uppercase, a to z lowercase, digits 0 to 9 and white space)
    // For more on JavaScript Regular Expressions, look here: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions
    var englishAlphabetDigitsAndWhiteSpace = /[A-Za-z0-9 ]/g;

    // Retrieving the key from the char code passed in event.which
    // For more info on even.which, look here: http://stackoverflow.com/q/3050984/114029
    var key = String.fromCharCode(event.which);

    //alert(event.keyCode);

    // For the keyCodes, look here: http://stackoverflow.com/a/3781360/114029
    // keyCode == 8  is backspace
    // keyCode == 37 is left arrow
    // keyCode == 39 is right arrow
    // englishAlphabetDigitsAndWhiteSpace.test(key) does the matching, that is, test the key just typed against the regex pattern
    if (event.keyCode == 8 || event.keyCode == 37 || event.keyCode == 39 || englishAlphabetDigitsAndWhiteSpace.test(key)) {
        return true;
    }

    // If we got this far, just return false because a disallowed key was typed.
    return false;
});

$('#mytextbox').on("paste",function(e)
{
    e.preventDefault();
});

詳細については、JavaScript regex + jQueryを使用して、入力テキストボックスで英語の文字/文字のみを許可してください。

于 2012-10-11T16:44:21.367 に答える
2

onkeypressキーが設定した制限内にあるかどうかのチェックに基づいて、キーを制限できます。

function ValidateKey() 
{   
   var key=window.event.keyCode;
   var allowed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :;,.?!£$%^&*()_+-*{}@~<>&"\'';

    return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
}

そして、あなたはそれを次のように使用することができます

<input size="30" value="" onkeypress="return ValidateKey();" >​

フィドル: http://jsfiddle.net/UHGRz/3/

jQuery を使用して、すべての入力コントロールに適用できます。コピー/貼り付けでは機能しませんでした。置換を使用した Lenier ソリューションが必要です。

そしてjQueryコードへの変換

jQuery("input").keypress(function() 
{   
   var key=window.event.keyCode;
   var allowed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ :;,.?!£$%^&*()_+-*{}@~<>&"\'';

    return allowed.indexOf(String.fromCharCode(key)) !=-1 ;
})​

およびフィドルで:http://jsfiddle.net/UHGRz/5/

于 2012-10-11T17:17:35.963 に答える
1

chがそのcharの場合、これを行うことができます

if((ch.charCodeAt(0)>="a".charCodeAt(0) && ch.charCodeAt(0)<="z".charCodeAt(0))||(ch.charCodeAt(0)>="A".charCodeAt(0) && ch.charCodeAt(0)<="Z".charCodeAt(0)))

あなたはアラビア語のキャラクターと同じ比較をすることができます

これはUnicodeで表されます

[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]
于 2012-10-11T16:43:59.353 に答える
0

そのようなことを試してみてください。英字の正規表現は /^[A-Za-z0-9]*$/ です。

<input name="yourtextbox" class="englishonly">
<script type="text/javascript">
$('.englishonly').bind('keyup blur',function(){ 
    $(this).val( $(this).val().replace(/^[A-Za-z0-9]*$/g,'') ); }
);
</script>
于 2012-10-11T16:47:19.633 に答える