我如何防止输入按键除字母数字以外的任何东西

how can i prevent to take input onkeypress anything other than alphanumeric

本文关键字:数字 任何东 何防止 输入      更新时间:2023-09-26

我的申请是阿拉伯语和英语。它是一个混合应用程序(html/css/jquery/android)。我们在一页中有一个文本字段,它应该只接受字母数字输入(即 ABC123)。我想阻止字母数字以外的输入。(一些客户正在使用阿拉伯语键盘,他们从阿拉伯语键盘输入其他内容。在这里,它在数据库中显示问号(?)。

所以我必须防止字母数字以外的输入。请建议我如何防止将输入视为 arebic 或字母数字以外的任何东西。提前谢谢。

这是我的代码...

function isAlphaNumeric(e){ 
	var k;
	document.all ? k=e.keycode : k=e.which;
	return((k>47 && k<58)||(k>64 && k<91)||(k>96 && k<123)||k==0);
 }
<input type="text"  OnKeypress="javascript:return isAlphaNumeric(event,this.value);" >

XML 中添加以下内容:

android:digits="abcdefghijklmnopqrstuvwxyz1234567890 "

由于jquery被标记,我给出了这个解决方案。我认为您可以使用正则表达式,如下所示:

 $('#text1').keypress(function (e) {
        var regex = new RegExp("^[a-zA-Z0-9]+$");
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (regex.test(str)) {
            return true;
        }
    
        e.preventDefault();
        return false;
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="text1">

如果要同时允许大写和小

<EditText
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:digits="qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0123456789"/>