gpt4 book ai didi

javascript - 忽略空格和制表符的 HTML5 最小字符长度验证

转载 作者:太空狗 更新时间:2023-10-29 15:36:57 25 4
gpt4 key购买 nike

我使用带有“必需”的 HTML5“模式”属性来验证输入框。 HTML5 的 required 属性有效,但它可以接受空格和制表符,这并不好,因为用户只会输入空格。我需要正则表达式,它可以接受空格和制表符,但只能计算字符数。例如“ronny jones”这应该给 10。

在 javascript 中我们使用类似这样的东西来做,我在 HTML5 中寻找类似的东西

      var name = document.forms['contact']['name'].value.replace(/ /g,""); // remove whitespace
if(name.length<6){ // count number of character.
document.getElementById('message').innerHTML="Enter correct Name";
return false;
}

我在 SO 上发现了一个与此相关的问题:Is there a minlength validation attribute in HTML5?但它接受我不想要的空格和制表符。

下面是我的 HTML5 模式代码,

    <input type="text" name="name" class="form-control" placeholder="Your Full Name" pattern="[A-Za-z]{6,}" title="Name should have atleast 6 characters." required="" />

最佳答案

我管理了一个愚蠢的 hack 来完成你的要求:

<input type="text" name="name" class="form-control" placeholder="Your Full Name" pattern="\s*(\S\s*){6,}" title="Name should have at least 6 characters." required="" />

必须有 6 个非空格字符才能通过。所以“asdfgh”、“abc def”会起作用,但“abc de”会失败。

它不适用于您关于“Anthony 之后有一个空格”的评论,但由于 Anthony 包含 6 个字符,所以可以吗?如果不是,你能否在问题中进一步澄清。


解释它是如何工作的:

  • 它采用“采用 1 个非空格字符”\S 后跟“无或更多空格字符”\s*
  • 的模式
  • 您需要模式匹配 6 次或更多次 (pattern){6,}(\S\s*){6,}
  • 然后在前面允许没有或更多的空格 \s*

如果你想将允许的字符限制为仅字母,请将 \S 更改为 [A-Za-z]

是的,在我看来这是一个 hack,因为在内部解析长字符串将是 hell 。但做的工作。您可能还想混合使用 maxlength 来限制它?

关于javascript - 忽略空格和制表符的 HTML5 最小字符长度验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41734105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com