我能够在c#/ .net中找到解决方案,但不能用于常规的web html.如果已经有答案让我知道,我会提出问题.
如何根据给定的正则表达式创建一个只允许某些字符(例如字母数字)的文本框(例如[a-zA-Z0-9])?因此,如果用户尝试输入任何其他内容,则粘贴包含,将被删除或不允许.
<input type="text" class="alphanumericOnly">
解决方法:
基本功能是这样的:
string = string.replace(/[^a-zA-Z0-9]/g, '')
这将替换[a-zA-Z0-9]未描述的任何字符.
现在您可以直接将它放入元素声明中:
<input type="text" class="alphanumericOnly" onkeyup="this.value=this.value.replace(/[^a-zA-Z0-9]/g, '')">
或者(当您使用类提示时)将此行为分配给具有类alphanumericOnly的每个输入元素:
var inputElems = document.getElemenstByTagName("input");
for (var i=0; i<inputElems.length; i++) {
var elem = inputElems[i];
if (elem.nodeName == "INPUT" && /(?:^|\s+)alphanumericOnly(?:\s+|$)/.test(elem.className) {
elem.onkeyup = function() {
this.value = this.value.replace(/[^a-zA-Z0-9]/g, '');
}
}
}
但是使用jQuery或其他JavaScript框架可能更容易做到这一点:
$("input.alphanumericOnly").bind("keyup", function(e) {
this.value = this.value.replace(/[^a-zA-Z0-9]/g, '');
});