有人坐在只允许 az 并且只允许每个单词的第一个字母大写的正则表达式上?
所以“我是侦探约翰·金布尔”会匹配,但不允许“我是警察你白痴”
此正则表达式将匹配单词开头带有小写或大写字母的单词。
[a-zA-Z][a-z]*
现在,您可以扩展正则表达式以匹配多个此类单词,具体取决于您想要什么。您必须对此小心一点,以确保它可以处理奇怪的情况,例如空句子等。
([a-zA-Z][a-z]*)* // Matches the empty sentence as well
([a-zA-Z][a-z]*)+ // Must have at least one word
然后您需要考虑开始和结束字符 (^
和$
) 是否与您的模式相关。
在 css 中,您可以将每个单词的第一个字母大写:
.title {
text-transform: capitalize;
}
在 PHP 中,字符串函数ucfirst如下所示:
$foo = ucfirst($foo);
仅允许a-z
在 Javascript 中使用此正则表达式
var pat = /^[a-z]+$/;
你真的不需要正则表达式。因为我真的不认为这是一种冒犯
您可以简单地纠正这种情况:
$str = "joHn KiMBle";
echo ucwords(strtolower($str)); // John Kimble
尝试使用
([a-zA-Z][a-z]*)+
希望能帮助到你
您可以使用此模式来检查:
^(?>[A-Za-z][a-z]*+|[^A-Za-z]++)+$
无需正则表达式即可。
!(strspcn($text, "0123456789") !== false ||
ucwords($text) == ucwords(strtolower($text)))