我需要一个正则表达式来检查一个字符串是否只包含字母 (a-z) 并且第一个字母是大写的,你不能在一个单词中有 2 个字母大写像:THomas 或 THomAS 但 Thomas Anderson(Thomas anderson 也是)有效
看:
The Magician Of The Elfs
是有效的,但不是 The MaGiCiAN of The ELFS
if (!preg_match("??", $name)) {
echo "Invalid name!";
}
希望你明白!
托马斯
无效:
ELFz 的魔术师
托马斯·安德森
有效:
Sprite 魔法师
Sprite 魔法师
Sprite 魔法师
托马斯·安德森
托马斯·安德森
基本上我不希望在一个单词中有超过 1 个大写字母,而不是句子。
最佳答案
'/^[A-Z][a-z]+( [A-Z][a-z]+)*$/'
虽然未经测试。
编辑 哦,也许我误解了你的问题。以上假定最小字长为两个。 “John A”或“A Horse”有效吗?在这种情况下:'/^[A-Z][a-z]*([A-Z][a-z]*)*$/'
。
根据更新的要求:
'/^[A-Z][a-z]*( [A-Za-z][a-z]*)*$/'
验证一个大写字母后跟任意数量的小写字母。在此之后,任意数量的序列:空格,(可能是大写字母),任意数量的小写字母(每个空格总共至少一个字母)。
关于php - 在硬正则表达式方面需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080972/