我只想在我的网页中输入英文、数字和特殊字符。我想使用 jquery 或 javascript 应用这个东西。实际上我的应用程序有两种语言,所以我想这样做。我也想用阿拉伯语做同样的事情..请帮助我。我怎样才能做到这一点?
问问题
16659 次
4 回答
4
您可以尝试以下使用JavaScript 替换方法的代码。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 to allow only English chars/letters in input textbox
于 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 是那个字符,你可以这样做
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 回答