javascript - 检查输入是否包含无效字符

标签 javascript html

我想检查用户在选择名字时是否输入了无效字符。我的代码几乎可以工作。唯一的问题是当我输入有效的用户名时“John”并添加无效字符“John!!”它没有检测到它。当我输入无效字符时,只有“!!!”它被检测到。

HTML:

<input class="user-input" pattern="[a-zA-Z0-9._-ßÄÖÜäöü]{1,30}" type="text" id="idUsername" oninput='checkValidUsername();'"  required disabled>

JavaScript:

function checkValidUsername()
    {
      var input = document.getElementById("idUsername").value;

      if(input.search(/^[a-zA-Z0-9ßÄÖÜäöü_.-]/) == -1)
      {
        document.getElementById("idValidChars").style.visibility = "visible";
      }
      else
      {
        document.getElementById("idValidChars").style.visibility = "hidden";
      }
    }

最佳答案

您必须将正则表达式更改为

/^[a-zA-Z0-9ßÄÖÜäöü_.-]+$/

这是因为您需要检查整个字符串的有效性,而不是像您那样检查第一个字符。
+ 允许前一个序列出现多次,$ 限制它为字符串的末尾。这意味着,字符串必须仅以您指定的字符开头和结尾。

关于javascript - 检查输入是否包含无效字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293622/

相关文章:

javascript - jQuery 上下文未按预期工作

javascript - 删除显示 :none with JQuery 时出现问题

javascript - 无法设置 webpack+react+jquery+bootstrap 项目

html - 如何将无序列表中的列表标签居中?

jquery - 如何在 css 选项卡中为 <li> onclick 添加边框

javascript - 获取没有输入标签的 Td 内部 html - Jquery

javascript - 使用 jQuery 动画 Bootstrap 进度条宽度

javascript - 如何使用 JavaScript 根据季节更改 CSS

html - 使 div 的宽度等于它包含的图像的宽度

javascript - 在 React 中设置 SVG 路径样式