有人坐在只允许a-z的正则表达式上,并且只允许每个单词的首字母大写?
所以'我是侦探John kimble'会匹配但是“我是一个警察yOu iDiot”是不允许的
答案 0 :(得分:2)
此正则表达式将匹配单词开头的小写或大写字母。
[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
然后,您需要考虑开始和结束字符(^
和$
)是否与您的模式相关。
答案 1 :(得分:1)
在css中,您可以将每个单词的第一个字母大写:
.title {
text-transform: capitalize;
}
在PHP中,字符串函数ucfirst是这样的:
$foo = ucfirst($foo);
仅允许a-z
在Javascript中使用此正则表达式
var pat = /^[a-z]+$/;
答案 2 :(得分:1)
你真的不需要这方面的正则表达式...因为我真的不认为这是一种冒犯
您可以简单地更正案例:
$str = "joHn KiMBle";
echo ucwords(strtolower($str)); // John Kimble
答案 3 :(得分:0)
尝试使用
([a-zA-Z][a-z]*)+
希望有所帮助
答案 4 :(得分:0)
您可以使用此模式检查:
^(?>[A-Za-z][a-z]*+|[^A-Za-z]++)+$
答案 5 :(得分:0)
没有正则表达式的可行。
!(strspcn($text, "0123456789") !== false ||
ucwords($text) == ucwords(strtolower($text)))