正则表达式允许使用字母数字, – ,_和空格
我正在寻找一个正则表达式,允许在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
不适合我。
对我来说,我想要一个支持前面的字符串的正则表达式。 基本上,动机是支持一些国外的邮政格式,因为它应该是一个允许空格的字母数字。
- ABC123
- ABC 123
- ABC123(空间)
- ABC 123(空间)
所以我最后写了自定义正则表达式,如下所示。
/^([az]+[\s]*[0-9]+[\s]*)+$/i
在这里,我在[\s]*
给出*,因为没有强制要求空格。 在我的情况下,邮政编码可能包含也可能不包含空格。