Regex 不带空格或数字的名字的正则表达式模式

Regex 不带空格或数字的名字的正则表达式模式,regex,Regex,我有这个正则表达式模式 /^[^-\s][^0-9][a-zA-Z\s-]+$/ 我有点搞不懂为什么我要测试它 我的模式允许在字符串之前添加一个数字。这意味着,如果我输入'2Mantas',它仍然会接受它,而'22Mantas'将无法通过测试。我不希望任何数字或空格被允许。任何人有什么想法吗?当前正则表达式中的前两条规则分为以下几条: ^[^\s-]-字符串中的第一个字符不应是空格或连字符。这解释了为什么接受2steve-2不是空格或连字符 [^0-9]-字符串中的第二个字符不应是数字。这解释了

我有这个正则表达式模式

/^[^-\s][^0-9][a-zA-Z\s-]+$/

我有点搞不懂为什么我要测试它
我的模式允许在字符串之前添加一个数字。这意味着,如果我输入'2Mantas',它仍然会接受它,而'22Mantas'将无法通过测试。我不希望任何数字或空格被允许。任何人有什么想法吗?

当前正则表达式中的前两条规则分为以下几条:

  • ^[^\s-]
    -字符串中的第一个字符不应是空格或连字符。这解释了为什么接受
    2steve
    -
    2
    不是空格或连字符
  • [^0-9]
    -字符串中的第二个字符不应是数字。这解释了为什么不接受
    22steve
    ——第二个位置的
    2
    是一个数字,这违反了此规则
  • 假设您的名字输入中只需要大写和小写字母,并且名字不应以空格或连字符开头,则可以简化为当前正则表达式的子集:

    /^[A-Za-z][A-Za-z-\s]+$/
    

    您有两个否定组,因此第一个字符不能是空格,第二个字符不能是数字。如果将空格和数字放在第一个括号中,它将按需要工作

    ^[^-\s\d][a-zA-Z\s-]+$
    
    这应该行得通

    Get string,它正好以一个数字开始,在这个数字之后应该是表达式,它只包含字符串(贪婪)


    请提供一些应该通过的示例输入,以及一些应该失败的示例输入。如果在“5steve”“2daniel”等之前包含一个数字,则任何字符串都可以通过,但“22steve”将失败。是的,您已在上面指出了这一点。你能提供一些应该通过和不应该通过的输入吗?例如,我们可以假设
    5steve
    2daniel
    不应该通过,但是你能给我们举个例子说明什么应该通过吗?如果你在名称前添加一个数字,它仍然会通过@mantastanionis-是的,你是对的,我的错误,我已经更新了我的正则表达式。
    ^\d{1}([a-zA-Z]+)