正则表达式 - 只允许在单词开头使用大写字母
Regex - Allow capital letters just at the beginning of words
我必须检查单词开头是否存在大写字母。
我的正则表达式现在看起来像这样:
/^([A-ZÁÉÚŐÓÜÖÍ]([a-záéúőóüöí]*\s?))+$/
在单词开头的效果很好,但如果问题不在单词的开头,那就失败了。
例如:John JohnJ
已通过验证。
我应该在我的正则表达式中替换什么才能正常工作?
在您的正则表达式模式中,space 是可选的,允许 JJohn
或 JohnJ
之类的组合 - 关键是要在单词之间设置它。有两种方法可以做到这一点:
推出你的模式:
/^[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*(?:\s[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*)*$/
或者在你的模式中使 space 成为必需的,但也可以让它成为行尾(虽然这允许尾随 space)。
/^(?:[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*(?:\s|$))+$/
在这两种模式中,我都删除了您原来的一些多余的组,并将所有组都变成了非捕获组。
你可以这样做:/^([A-ZÁÉÚŐÓÜÖÍ]{0,1}([a-záéúőóüöí]*\s?))+$/
对于 {a,b}
,a
是它将匹配的最少字符数,而 b
是它将匹配的最多字符数。
如果开头总是大写字母,您可以简单地使用:/^([A-ZÁÉÚŐÓÜÖÍ]{1}([a-záéúőóüöí]*\s?))+$/
在前面的例子中,{c}
、c
是它将匹配的确切字符数。
我必须检查单词开头是否存在大写字母。
我的正则表达式现在看起来像这样:
/^([A-ZÁÉÚŐÓÜÖÍ]([a-záéúőóüöí]*\s?))+$/
在单词开头的效果很好,但如果问题不在单词的开头,那就失败了。
例如:John JohnJ
已通过验证。
我应该在我的正则表达式中替换什么才能正常工作?
在您的正则表达式模式中,space 是可选的,允许 JJohn
或 JohnJ
之类的组合 - 关键是要在单词之间设置它。有两种方法可以做到这一点:
推出你的模式:
/^[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*(?:\s[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*)*$/
或者在你的模式中使 space 成为必需的,但也可以让它成为行尾(虽然这允许尾随 space)。
/^(?:[A-ZÁÉÚŐÓÜÖÍ][a-záéúőóüöí]*(?:\s|$))+$/
在这两种模式中,我都删除了您原来的一些多余的组,并将所有组都变成了非捕获组。
你可以这样做:/^([A-ZÁÉÚŐÓÜÖÍ]{0,1}([a-záéúőóüöí]*\s?))+$/
对于 {a,b}
,a
是它将匹配的最少字符数,而 b
是它将匹配的最多字符数。
如果开头总是大写字母,您可以简单地使用:/^([A-ZÁÉÚŐÓÜÖÍ]{1}([a-záéúőóüöí]*\s?))+$/
在前面的例子中,{c}
、c
是它将匹配的确切字符数。