当前位置: 首页 > 知识库问答 >
问题:

使用Javascript检查字符串是否包含特殊字符

唐威
2023-03-14

我有一个密码字段,我需要使用javascript检查它是否有以下字符:

! @ # $ % ^

我试着这样做,结果正如预期的那样:

function ValidarPass()
{
    var Contrasena = document.getElementById('Clave').value;

    if(Contrasena!='' && 
      (Contrasena.indexOf('!')>-1||
       Contrasena.indexOf('@')>-1||
       Contrasena.indexOf('#')>-1||
       Contrasena.indexOf('$')>-1||
       Contrasena.indexOf('%')>-1||
       Contrasena.indexOf('^')>-1||
       Contrasena.indexOf('&')>-1||
       Contrasena.indexOf('*')>-1))
    {
        alert("Exito!");
    }
    else
    {
        alert("Error!");
    }
}

有没有更简单/有效的方法来做到这一点?

共有3个答案

毋琪
2023-03-14

正则表达式将是一个很好的单行解决方案。但它实际上比indexOf慢(就像您发布的代码一样)。在这里查看一些信息:https://jsperf.com/regexp-vs-indexof

正则表达式文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

function isValid(str){
 return /[!@#$%^&*(),.?":{}|<>]/g.test(str);
}

此外,该网站非常适合测试正则表达式https://www.regextester.com/

巫马松
2023-03-14

您将使用的正则表达式是[!@#$%^

这将检查您列出的所有特殊字符。在函数中使用时,可以使用matches函数,如下所示:

public boolean isSpecialCharacter(String string) {
    String pattern = "[!@#$%^&*]";
    return string.matches(pattern);
}
谯德元
2023-03-14

您可以使用正则表达式测试字符串:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

function isValid(str){
     return !/[!@#$%^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(str);
    }
 类似资料:
  • 问题内容: 我必须检测一个字符串是否包含任何特殊字符。我该如何检查?Swift支持正则表达式吗? 我尝试了上面的代码,但是只有当我输入第一个字符作为特殊字符时,它才匹配。 问题答案: 您的代码检查字符串中是否没有字符来自给定的集合。您要检查的是给定集合中是否 没有 任何 字符: __ 您还可以使用正则表达式实现此目的: 该模式匹配的字符 不在 AZ,az或0-9范围内。 Swift 2更新: Sw

  • 问题内容: 我正在尝试使此正则表达式行起作用,但它们似乎不起作用(我无法将其打印出“匹配项”。 我的目标是从Scanner中读取一个字符串,然后运行此功能。如果字符串具有小写值或特殊字符,则我想调用无效函数,然后返回NULL。然后在isValid()方法中,让它返回false并结束。 如果它仅包含NUMBERS和UPPERCASE字符,我想按原样返回该字符串,以便它可以执行其他操作。 我似乎无法将

  • 我正在寻找一个运算符,它允许我检查字段的值是否包含某个字符串。 比如: 可能吗?

  • 所以我一辈子也想不出来。我正在尝试编写一个程序,提示用户输入电话号码。这将作为字符串输入,并在稍后的程序中转换为整数数组。然而,我现在遇到的情况是验证用户输入的字符串是否仅限于!!!包含2-9之间的数字。我已经尝试了。Contains方法和。Match方法,但是使用这些方法总是提供错误的结果。如果有人能提供一些关于如何解决这个问题,我将非常感谢。提前感谢。 以下是我目前掌握的信息:

  • 问题内容: 那么,如何检查字符串中是否包含特定单词? 这是我的代码: 我遇到了错误。 问题答案: 并不像他们所说的那么复杂,选中此选项您不会后悔。 您可以根据需要更改。

  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出: