我有这种正则表达式模式
/ ^ [^-\ s] [^ 0-9] [a-zA-Z \ s-] + $ /
对于在https://www.regextester.com/上进行测试的原因我有些困惑 我的模式允许在字符串之前添加一个数字。这意味着,如果我输入“ 2Mantas”,它将仍然接受,而“ 22Mantas”将无法通过测试。我不希望有任何数字或空格。有任何想法吗?
答案 0 :(得分:0)
当前正则表达式中的前两个规则分解为以下内容:
^[^\s-]
-字符串中的第一个字符不应为空格或连字符。这说明了为什么接受2steve
-2
不是空格或连字符。[^0-9]
-strnig中的第二个字符不应为数字。这说明了为什么不接受22steve
的原因-第二个位置的2
是一个数字,这违反了此规则。假设您的名字输入中除了大写字母和小写字母之外,什么都不想要,并且 的名称不应以空格或连字符开头,因此可以简化为您的子集当前的正则表达式:
/^[A-Za-z][A-Za-z-\s]+$/
答案 1 :(得分:0)
您有两个否定组,所以说第一个字符不能为空格,第二个字符不能为数字。如果将空格和数字放在第一个方括号中,它将按预期工作。
^[^-\s\d][a-zA-Z\s-]+$
答案 2 :(得分:0)