HTML5 表单验证模式带有空格的字母数字?

Posted

技术标签:

【中文标题】HTML5 表单验证模式带有空格的字母数字?【英文标题】:HTML5 form validation pattern alphanumeric with spaces? 【发布时间】:2013-11-06 07:38:11 【问题描述】:

我的 html5 表单中有以下输入标记:

<p>
    <label>Company Name*</label>
    <input type="text" name="name" class="field" required pattern="[a-zA-Z0-9]+" />
</p>

这可以很好地检查公司名称是否由字母数字字符组成。但我当然想在公司名称中允许空格。我需要知道我应该在模式中添加什么。

【问题讨论】:

【参考方案1】:

pattern="[a-zA-Z0-9 ]+" 这样的模式属性中添加一个空格怎么样。 如果您想支持任何类型的空间,请尝试pattern="[a-zA-Z0-9\s]+"

【讨论】:

正是我想要的,谢谢。你能解释一下\s 的任何类型的空间和` ` 空间之间的区别吗? \s 是一个包含制表符和空格字符的类。 如果我只输入空格,那么它接受。我的模式应该是接受空格但如果只输入空格则不接受? 这不适用于变音符号,即:ą, ó, ä, ö @bumerang 我们如何轻松地包含这些内容?【参考方案2】:

我的解决方案是涵盖所有变音符号:

([A-z0-9À-ž\s])2,

A-z - 适用于所有拉丁字符

0-9 - 这是所有数字

À-ž - 适用于所有变音符号

\s - 这是空格

2, - 字符串长度至少为 2 个字符

【讨论】:

这真是太棒了,以前从未见过。 -- 设法找到它,现在我知道它叫什么了:***.com/a/30225759/2848941 非常有用,谢谢! 我之前一直在使用的(它似乎工作,但我不明白,是这样的:[a-zA-Z\u00c0-\u00d6\u00d8-\u00f6\u00f8 -\u024f ]+ 您可以简单地使用max-lengthmin-length 属性,而不是使用2, 位。不管我喜欢这个答案;特别是对于您花时间做出的澄清,+1。 请不要忘记撇号。我们爱尔兰人首当其冲受到这种反撇号歧视的影响! @eddyoc 您能否在评论中提供,或者在我的回答中编辑必要的字符范围?【参考方案3】:

要避免输入只有空格,请使用:"[a-zA-Z0-9]+[a-zA-Z0-9 ]+"

eg: abc | abc aBc | abc 123 AbC 938234

例如,为了确保输入名字和姓氏,请使用像

这样的细微变化

"[a-zA-Z]+[ ][a-zA-Z]+"

eg: abc def

【讨论】:

或者我相信你可以只包含 'required' 属性来规避它。 @user1893702 required 属性将接受空格。你需要一个更大的正则表达式。【参考方案4】:

这是一个相当古老的问题,但如果它对任何人都有用,从这里找到的良好响应的组合开始,我已经结束了使用这种模式:

pattern="([^\s][A-z0-9À-ž\s]+)"

至少需要两个字符,确保它不以空格开头,但允许单词之间有空格,还允许使用特殊字符,例如ą, ó, ä, ö

【讨论】:

【参考方案5】:

使用此代码确保用户不只是输入空格,而是输入有效名称:

pattern="[a-zA-Z][a-zA-Z0-9\s]*"

【讨论】:

【参考方案6】:

<h1>In my case, I need only Number and I hafta stop to user entering any Alphabets. We can also stop to entering any number.</h1>

<hr> 
<p>
<h2>Number only</h2>
<input type="tel" name="PhoneNumber" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" />
</p>
<hr> 
<p>
<h2>Alphabets only</h2>
<input type="text" name="name" onkeyup="this.value=this.value.replace(/[^A-z]/g,'');" />
</p>

【讨论】:

【参考方案7】:

将以下代码用于 HTML5 验证模式字母数字,不带 / 带空格:-

HTML5 验证模式字母数字不带空格:- onkeypress="return event.charCode >= 48 && event.charCode = 97 && event.charCode = 65 && event.charCode

HTML5 验证模式字母数字加空格:-

onkeypress="return event.charCode >= 48 && event.charCode = 97 && event.charCode = 65 && event.charCode

【讨论】:

这个问题似乎是在寻找一种验证模式。另外,请注意charCodekeyCodewhich 等键盘事件属性将被key 取代:developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key【参考方案8】:

使用如下格式代码

$('#title').keypress(function(event)
    //get envent value       
    var inputValue = event.which;
    // check whitespaces only.
    if(inputValue == 32)
        return true;    
    
     // check number only.
    if(inputValue == 48 || inputValue == 49 || inputValue == 50 || inputValue == 51 || inputValue == 52 || inputValue == 53 ||  inputValue ==  54 ||  inputValue == 55 || inputValue == 56 || inputValue == 57)
        return true;
    
    // check special char.
    if(!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0))  
        event.preventDefault(); 
    
)

【讨论】:

以上是关于HTML5 表单验证模式带有空格的字母数字?的主要内容,如果未能解决你的问题,请参考以下文章

7.4 Javascript:表单验证-揭开正则表达式的面纱

7.4 Javascript:表单验证-揭开正则表达式的面纱

PHP常用的表单验证

自定义 HTML5 表单验证最初不显示自定义错误

如何在 Angular 2 中添加表单验证模式?

防止表单输入类型=“数字”中的负输入?