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;

  }

  else if (type == "paste") {

  code = window.clipboardData.getData('Text');

  }

  else if (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;

  }

  }

  }