Javascript 用于允许字母数字、、u和空格的正则表达式

Javascript 用于允许字母数字、、u和空格的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我正在搜索一个正则表达式,以便在JavaScript/jQuery中允许字母数字字符、-、或空格。我试过谷歌搜索,但没能找到 有人能帮我解决这个问题吗 提前谢谢。在这里会有很大帮助。要为要验证的字符创建匹配集: var string = 'test- _ 0Test'; string.match(/^[-_ a-zA-Z0-9]+$/) 您可以将字母数字与\w匹配,这与JavaScript中的[a-Za-z0-9_]相同(其他语言可能不同) 这就剩下了-和空格,它们可以组合成一个匹配集,例如

我正在搜索一个正则表达式,以便在JavaScript/jQuery中允许字母数字字符、-、或空格。我试过谷歌搜索,但没能找到

有人能帮我解决这个问题吗

提前谢谢。

在这里会有很大帮助。要为要验证的字符创建匹配集:

var string = 'test- _ 0Test';
string.match(/^[-_ a-zA-Z0-9]+$/)
  • 您可以将字母数字与
    \w
    匹配,这与JavaScript中的
    [a-Za-z0-9_]
    相同(其他语言可能不同)
  • 这就剩下了
    -
    和空格,它们可以组合成一个匹配集,例如
    [\w\-]
    。但是,您可能需要考虑使用<代码> \s>代码>,而不只是空间字符(<代码> 也匹配标签和其他形式的空白)。
    • 请注意,我将
      -
      转义为
      -
      ,这样正则表达式引擎就不会将其与
      a-Z
  • 最后,您可能希望通过
    ^
    $
    确保整个字符串与开始和结束匹配
您可能正在寻找的完整正则表达式是:

/^[\w\-\s]+$/
(请注意,必须至少有一个字符才能匹配;如果零长度字符串也可以,请使用
*

最后,这是一个很棒的参考


额外积分:此正则表达式与非ASCII字母不匹配。不幸的是,大多数浏览器中的正则表达式引擎不支持命名字符集

对于支持命名字符集的语言/平台,可以使用以下正则表达式:

/^[a-z\d\-_\s]+$/i
\w匹配字母、数字和下划线

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

-匹配连字符(如果字符集示例[a-z]中有连字符,请确保将连字符放在开头,如[-a-z])


在regExp
[A-Za-z0-9?空格中,-]
问号“?”后有一个文本空格。这与空间相匹配。其他像
/^[-\w\s]+$/
/^[a-z\d\-\u\s]+$/i
这样的函数对我不起作用。

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

  • ABC123
  • ABC 123
  • ABC123(空间)
  • ABC 123(空间)
  • 因此,我最终编写了自定义正则表达式,如下所示

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

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

    试试这个正则表达式

    *更新的正则表达式

    /^[a-z0-9]+([-_\s]{1}[a-z0-9]+)*$/i
    
    这将在文本之间只允许单个空格或-或uu

    Ex: this-some abc123_regex
    
    要了解:


    *注意:我已经根据Toto问题更新了正则表达式

    Try
    /[a-z\d\-\us]+/I
    。但是你可能想学正则表达式。你不可能在网上找到所有这些,特别是如果它不常见的话。是的,我在这方面很弱it@elclanrs不为我工作耶忘了开始和结束字符:
    /^[a-z\d\-\us]+$/i
    。这就是为什么正则表达式是有用的知道。。。我在这里了解到@elclars是的,它正在工作。请将您的解决方案作为答案发布,以便我可以将其标记为已接受。这比我的答案更好,因为
    [a-z[0-9]\u
    \w
    相同。当我们首先提供空间时,这不起作用char@rahul当前位置此选项有效,但请检查Never的答案,因为它也应该有效,并且略短。基本上
    \w
    表示字母+下划线,它只是一种快捷方式,就像
    \d
    表示
    [0-9]
    一样。试试这个正则表达式
    /^[\w]+([-\s]{1}[a-z0-9]+)*$/i
    这将只允许文本之间有一个空格或-或-或-或-在文本之间
    例如:atoz一些单词_1234
    这允许使用需要的基本特殊字符“?”,:。。。。阻止其他人。谢谢为什么要匹配单空格连字符或下划线?这不是它所说的。你的正则表达式我有理由这么做。假设有一个用户名字段,带有@elclanrs regex(第一个答案)。在这种情况下,实时用户只需在其用户名字段中输入
    --\uuuuu
    即可通过验证,这是完全错误的。为了避免这样的情况,我给了regex一些条件。但是你的regex匹配了
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
    
    /^[a-z0-9]+([-_\s]{1}[a-z0-9]+)*$/i
    
    Ex: this-some abc123_regex