如何使用jquery阻止特殊字符输入到输入字段?
我正在用两种语言(英语和希伯来语)创建一个网站(Speedy Net)。我有一个输入字段(“ slug / username”),该字段必须为英语(字母数字拉丁字符)。当我通过手机进入网站时,我可以用希伯来语写文字。是否可以在此输入字段中强制使用英文键盘?我注意到,对于电子邮件地址(电子邮件输入),键盘已经是英文了。
更新:在服务器端,我们确实验证了输入。我不想在客户端(使用JavaScript)上验证输入,也不想阻止用户键入希伯来字符(稍后可能会这样做),但是我想(强制)默认键盘语言为英语。我注意到,对于电子邮件和密码,当将其方向设置为时ltr,键盘的默认语言是英语。但不在slug / username字段上。
我测试的浏览器自动将电子邮件输入验证为英文。您不能在那里使用希伯来语字符。
我进行了搜索,但没有在Stack Overflow或其他地方找到类似的问题。
子段字段可以包含服务器将其转换为破折号的任何非字母数字字符。例如Aa=Bb!1@2#3$4%56,服务器将aa-bb-1-2-3-4-56其转换为,这是Speedy Net上用户的有效子弹。但是,??-??-1-2-3-4-56这不是Speedy Net上的有效子弹。用户不得以至少4个拉丁字母开头。
当页面位于希伯来语时会出现问题。如果页面为英文,则没有问题。
在我的网站上输入名字和姓氏时,用户可以输入任何语言。输入电子邮件地址(电子邮件输入)时,键盘会自动切换为英语(在Galaxy上经过测试)。但是,在输入信息/用户名(在电子邮件地址之后)时,如果在输入电子邮件之前(在Galaxy上)希伯来语位于希伯来语,键盘将切换回希伯来语。这就是我要防止的。
所以,这是我的输入字段:
<input type={type} name={name} />
Run Code Online (Sandbox Code Playgroud)
我怎样才能只允许英文字母?
这是RegEx,我相信我应该使用:/[A-Za-z]/ig
https://regex101.com/r/upWFNy/1
我假设onChange()事件应被用于该用的组合setState()和event.target.value。
谢谢。
附注。我需要在打字时使用这个。
我试图避免在我的输入字符串中输入除数字和字母以外的任何标记page.php:
<input type="text" id="input">
Run Code Online (Sandbox Code Playgroud)
从这个答案只允许输入英文字符和数字 <input type="text" id="input" class="clsAlphaNoOnly">:
$(document).ready(function () {
$('.clsAlphaNoOnly').keypress(function (e) { // Accept only alpha numerics, no special characters
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;
});
})
Run Code Online (Sandbox Code Playgroud)
或这个:
$(function(){
$("#input").keypress(function(event){
var ew = event.which;
if(ew == 32)
return true;
if(48 <= ew && ew <= 57)
return true;
if(65 <= ew && ew <= 90) …Run Code Online (Sandbox Code Playgroud) html ×3
javascript ×2
validation ×2
alphanumeric ×1
css ×1
django ×1
forms ×1
hebrew ×1
input ×1
jquery ×1
reactjs ×1
regex ×1