用于检查特殊字符的JavaScript代码

ank*_*kit 20 javascript

我有JavaScript代码来检查特殊字符是否在字符串中.该代码在Firefox中运行良好,但在Chrome中无效.在Chrome中,即使字符串不包含特殊字符,它也会包含特殊字符.

var iChars = "~`!#$%^&*+=-[]\\\';,/{}|\":<>?";

for (var i = 0; i < chkfile.value.length; i++)
{
  if (iChars.indexOf(chkfile.value.charAt(i)) != -1)
  {
     alert ("File name has special characters ~`!#$%^&*+=-[]\\\';,/{}|\":<>? \nThese are not allowed\n");
     return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

假设我想desktop.zip从任何Linux/Windows机器上传文件.值的值chkfile.valuedesktop.zip在Firefox中,但在Chrome中的值chkfile.valuec://fakepath/desktop.zip.我该如何摆脱c://fakepath/chkfile.value

Koo*_*Inc 41

您可以使用此正则表达式测试字符串:

function isValid(str){
 return !/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(str);
}
Run Code Online (Sandbox Code Playgroud)

  • 好吧......只需删除它:`/ [〜\`!#$%\ ^&*+ =\ - \[\] \\;,/ {} | \\":<> \?]/g` (11认同)
  • 如果您使用它作为密码,则它具有 OWASP 定义的所有特殊字符: ```/[\s~`!@#$%\^&amp;*+=\-\[\]\\'; ,/{}|\\":&lt;&gt;\?()\._]/g.test(str)``` (4认同)

Kof*_*ffy 12

直接来自w3schools网站:

   var str = "The best things in life are free";
   var patt = new RegExp("e");
   var res = patt.test(str);
Run Code Online (Sandbox Code Playgroud)

要将他们的示例与正则表达式结合起来,您可以执行以下操作:

function checkUserName() {
    var username = document.getElementsByName("username").value;
    var pattern = new RegExp(/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/); //unacceptable chars
    if (pattern.test(username)) {
        alert("Please only use standard alphanumerics");
        return false;
    }
    return true; //good user input
}
Run Code Online (Sandbox Code Playgroud)


Vis*_*dar 11

试试这个。

function containsSpecialCharacters(str){
    var regex = /[ !@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/g;
	return regex.test(str);
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可能会回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高​​答案的长期价值。 (7认同)

sed*_*ran 5

你有没有写什么return true地方?你应该写它,否则函数什么也不返回,程序也可能认为它是假的。

function isValid(str) {
    var iChars = "~`!#$%^&*+=-[]\\\';,/{}|\":<>?";

    for (var i = 0; i < str.length; i++) {
       if (iChars.indexOf(str.charAt(i)) != -1) {
           alert ("File name has special characters ~`!#$%^&*+=-[]\\\';,/{}|\":<>? \nThese are not allowed\n");
           return false;
       }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我在我的 chrome 控制台中试过这个,效果很好。