【问题标题】:How to validate a username field html如何验证用户名字段html
【发布时间】:2016-03-05 09:59:32
【问题描述】:

我正在尝试验证用户名字段。该字段必须包含数字、字母且没有特殊字符。

This pattern="[A-Za-z0-9]" 代表用户名,带有数字和字母。

模式应该是什么?

【问题讨论】:

标签: html pattern-matching


【解决方案1】:

您的模式代表单个 大写字符、小写字符数字

你想要的图案是这样的:

/^[a-z\d]+$/i

解释:

  • ^ - 从字符串的开头(或带有 m 标志的行)
  • [ - 开始字符类
  • a-z - 从 a 到 z 的字符范围
  • \d - 与 0-9 相同(任何数字)
  • ] - 关闭字符类
  • +一个或多个
  • $ - 字符串结尾(或带有 m 标志的行)

然后我们在实际的正则表达式 // 本身之外有 标志。 我们使用了i 标志,它代表不区分大小写。

备忘单/工具

【讨论】:

    【解决方案2】:

    我不知道这是否可以在原始 HTML 中完成(怀疑),所以你需要一些 javascript。如果你愿意,你可以在“onchange”属性上调用一个函数,所以元素就像:

    <input id="username" type="text" onchange="validate()" name="name" value=""/>
    

    然后,javascript 函数将访问元素、获取值并检查其中的内容,如下所示:

    function validate() {
         var name = document.getElementById("username").value;
         //do checking here however you like (regex, iteration, etc.)
    }
    

    但是,这需要在服务器端完成。如果你真的想的话,你可以在客户端做,但无论如何都必须在服务器端做。我假设您的意思是客户端,因为您使用 HTML 标记问题,而不是服务器端语言。

    【讨论】:

      【解决方案3】:

      这应该可以用 javascript 测试字符串中的字符和数字。

      /^[a-zA-Z0-9]+$/
      

      【讨论】:

        【解决方案4】:

        试试这个

        <input type="text" class="form-control" name="username" onkeyup="if (/[^|a-z0-9]+/g.test(this.value)) this.value = this.value.replace(/[^|a-z0-9]+/g,'')">
        

        【讨论】:

          猜你喜欢
          • 2014-07-08
          • 1970-01-01
          • 1970-01-01
          • 2016-01-24
          • 2017-09-16
          • 2013-03-25
          • 1970-01-01
          • 2021-12-19
          • 1970-01-01
          相关资源
          最近更新 更多