我正在搜索允许在 JavaScript/jQuery 中使用字母数字字符、-、_ 或空格的正则表达式。我尝试使用谷歌搜索,但没能找到。
谁能帮我解决这个问题?
提前致谢。
最佳答案
Character sets会在这里帮上大忙。您要为要验证的字符创建一个匹配集:
- 您可以将字母数字与
\w
匹配,这与 JavaScript 中的[A-Za-z0-9_]
相同(其他语言可能不同)。 - 剩下
-
和空格,它们可以组合成一个匹配集,例如[\w\- ]
。但是,您可能需要考虑使用\s
而不仅仅是空格字符(\s
也匹配制表符和其他形式的空格)- 请注意,我将
-
转义为\-
,这样正则表达式引擎就不会将它与A-Z< 这样的字符范围混淆
- 请注意,我将
- 最后,您可能希望确保整个字符串匹配 by anchoring通过
^
和$
开始和结束
您可能正在寻找的完整正则表达式是:
/^[\w\-\s]+$/
(请注意 the +
indicates 必须至少一个字符才能匹配;如果零长度字符串也可以,请改用 *
)
最后,http://www.regular-expressions.info/是一个很棒的引用
奖励积分:此正则表达式不匹配非 ASCII alpha。不幸的是,大多数浏览器中的正则表达式引擎不支持命名字符集,but there are some libraries to help with that .
对于支持命名字符集的语言/平台,您可以使用 /^[\p{Letter}\d\_\-\s]+$/
关于javascript - 允许字母数字、-、_ 和空格的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283470/