我想在输入中阻止重音字母(任何语言)的输入,最好我希望通过属性pattern
我尝试了一些但我没有成功......
<form>
<label for="username">Name <i>(only letters without accent)</i></label>
<br>
<input name="username" id="username" type="text" pattern="[A-Za-z]+" oninvalid="this.setCustomValidity('Only letters without accent')">
</form>
&#13;
接受:Joao Silva
,Pedro
,Fabio Duarte
......
拒绝:João Silva
,Pedro Camões
,Fábio Duarte
......
答案 0 :(得分:1)
<input name="username" id="username" type="text"
pattern="[A-Za-z ]*" title="Latin letters and space characters only"> />
测试此代码here。
或者,您可以控制在输入过程中允许使用的字符。
<input name="username" id="username" type="text" onCopy="return false"
onDrag="return false" onDrop="return false" onPaste="return false"
autocomplete=off />
jQuery的:
$(document).ready(function() {
$("#username").keypress(function(event) {
var inputValue = event.which;
if(!((inputValue >= 65 && inputValue <= 90) || // A-Z
(inputValue >= 97 && inputValue <= 122) || // a-z
(inputValue == 32))) { // space
event.preventDefault();
}
});
});
测试此代码here。
答案 1 :(得分:0)
正如问题中所指出的,听起来你想要阻止除基本拉丁字母和空格以外的任何东西,这对于pattern
属性是可行的 - 正则表达式是^[a-zA-Z ]+$
。
但是,您必须考虑您实际想要允许的名称。例如,你会允许Αρσένιος,Александра或李晓华吗?如果你真的想要允许这些名字而特别禁止使用拉丁字母变音符号,那么它将会变得更加复杂。
另外,正如@Stephen P链接到下面的文章所指出的那样,值得仔细考虑是否值得强迫用户输入实际上不是真名的东西。