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