Javascript Regex Only Textbox

我能够在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, '');
});
上一篇:【GOF23设计模式】中介者模式


下一篇:ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值