正则表达式允许使用字母数字, – ,_和空格

我正在寻找一个正则表达式,允许在JavaScript / jQuery中使用字母数字字符, – ,_或空格。 我试过谷歌搜索,但无法找到。

任何人都可以帮我解决这个问题吗?

提前致谢。

试试这个正则表达式:

 /^[az\d\-_\s]+$/i 

字符集在这里将有所帮助。 您想为要validation的字符创建匹配集:

  • 您可以将字母数字与\w匹配,这与JavaScript中的[A-Za-z0-9_]相同(其他语言可能不同)。
  • 留下-和空格,可以组合成匹配​​的集合,如[\w\- ] 。 但是,您可能需要考虑使用\s而不仅仅是空格字符( \s也匹配制表符和其他forms的空格)
    • 请注意,我正在逃避-作为\-以便正则表达式引擎不会将它与像AZ这样的字符范围混淆
  • 最后,您可能希望通过^$ 锚定开始和结束来确保整个字符串匹配

您可能正在寻找的完整正则表达式是:

 /^[\w\-\s]+$/ 

(注意, +表示必须至少有一个字符才能匹配;如果零长度字符串也可以,请使用*代替)

最后, http://www.regular-expressions.info/是一个很棒的参考

加分点:此正则表达式与非ASCII alpha 匹配。 不幸的是,大多数浏览器中的正则表达式引擎都不支持命名字符集, 但有一些库可以帮助解决这个问题 。

对于支持命名字符集的语言/平台,您可以使用/^[\p{Letter}\d\_\-\s]+$/

 /^[-\w\s]+$/ 

\ w匹配字母数字下划线

\ s匹配空格制表符换行符

匹配连字符 (如果你的字符集示例[az]中有连字符,请务必将连字符放在开头,如此[-az])

 var string = 'test- _ 0Test'; string.match(/^[-_ a-zA-Z0-9]+$/) 
 var regex = new RegExp("^[A-Za-z0-9? ,_-]+$"); var key = String.fromCharCode(event.charCode ? event.which : event.charCode); if (!regex.test(key)) { event.preventDefault(); return false; } 

在regExp [A-Za-z0-9?spaceHere,_-] ,在问号“?”后面有一个文字空格。 这符合空间。 其他像/^[-\w\s]+$//^[az\d\-_\s]+$/i不适合我。

对我来说,我想要一个支持前面的字符串的正则表达式。 基本上,动机是支持一些国外的邮政格式,因为它应该是一个允许空格的字母数字。

  1. ABC123
  2. ABC 123
  3. ABC123(空间)
  4. ABC 123(空间)

所以我最后写了自定义正则表达式,如下所示。

 /^([az]+[\s]*[0-9]+[\s]*)+$/i 

在此处输入图像描述

在这里,我在[\s]*给出*,因为没有强制要求空格。 在我的情况下,邮政编码可能包含也可能不包含空格。