js过滤特殊字符输入(可过滤输入,粘贴,拖拽多种情况)
function TextValidate(type) {
var code;
var character;
var Lang = document.getElementById('Lang').value;
var err_msg ="";
if (Lang !="Eng") {
err_msg ="文件夹名稱不能包含下列字符之一:\n \\ / : * ? \"<>|& , ";
}
else {
err_msg = "A Folder Name cannot contain any of the following characters:\n \\ / : *? \" < > | & ,";
}
if (type =="input") {
code = window.event.keyCode;
}
elseif (type =="paste") {
code = window.clipboardData.getData('Text');
}
elseif (type =="Drop") {
code = window.event.dataTransfer.getData('Text');
}
else {
code = arguments.callee.caller.arguments[0].which;
}
var character = String.fromCharCode(code);
var txt =new RegExp("[\\*,\\&,\\\\,\\/,\\?,\\|,\\:,\\<,\\>,\"]");
if (type == "input") {
if (txt.test(character)) {
alert(err_msg);
if (document.all) {
window.event.returnValue = false;
}
else {
arguments.callee.caller.arguments[0].preventDefault();
}
}
}
if (type == "paste" || type == "Drop") {
if (txt.test(code)) {
alert(err_msg);
window.event.returnValue = false;
}
}
}
var code;
var character;
var Lang = document.getElementById('Lang').value;
var err_msg ="";
if (Lang !="Eng") {
err_msg ="文件夹名稱不能包含下列字符之一:\n \\ / : * ? \"<>|& , ";
}
else {
err_msg = "A Folder Name cannot contain any of the following characters:\n \\ / : *? \" < > | & ,";
}
if (type =="input") {
code = window.event.keyCode;
}
elseif (type =="paste") {
code = window.clipboardData.getData('Text');
}
elseif (type =="Drop") {
code = window.event.dataTransfer.getData('Text');
}
else {
code = arguments.callee.caller.arguments[0].which;
}
var character = String.fromCharCode(code);
var txt =new RegExp("[\\*,\\&,\\\\,\\/,\\?,\\|,\\:,\\<,\\>,\"]");
if (type == "input") {
if (txt.test(character)) {
alert(err_msg);
if (document.all) {
window.event.returnValue = false;
}
else {
arguments.callee.caller.arguments[0].preventDefault();
}
}
}
if (type == "paste" || type == "Drop") {
if (txt.test(code)) {
alert(err_msg);
window.event.returnValue = false;
}
}
}
<asp:TextBox ID="txtFolderNameChi" CssClass="frmTxt" runat="server" MaxLength="200" onkeypress="TextValidate('input')" onpaste="TextValidate('paste')" ondrop="TextValidate('drop')"></asp:TextBox>
在textbox的onkeypress,onpaste,ondrop事件中使用上面的方法即可,需要给方法传递一个参数,告诉方法现在执行的是什么动行。
可限制输入*,&,\,/,?,|,<,>,如需要限制更多的特殊符号,只需要在var txt =new RegExp("[\\*,\\&,\\\\,\\/,\\?,\\|,\\:,\\<,\\>,\"]");
中添加即可。