如何检测PHP中的字符串是否包含1个大写字母

Bob*_*zza 18 php regex string

找不到这个功能.我假设我需要使用正则表达式?

在网址包含至少1个大写字母的情况下,我正在尝试在php中执行html重定向.

例如:http: //www.domain.com/Michael_Jordan需要重定向到http://www.domain.com/michael_jordan - 唯一的问题是我似乎无法找到一个脚本来检测是否至少有1个大写字母存在.

Rag*_*geZ 38

一些正则表达式应该能够工作,你可以使用preg_match[A-Z]

if(preg_match('/[A-Z]/', $domain)){
 // There is one upper
}
Run Code Online (Sandbox Code Playgroud)

  • `+`完全没必要. (4认同)
  • "**至少**一个上层 (3认同)
  • 您应该注意,今天,域名不仅包含美国字母。因此,在某些情况下(但并非全部),这将起作用。例如,这是一个有效的丹麦网址:www.rødgrødmedFLØDE.dk (2认同)

Tyl*_*ves 30

if (strtolower($url) != $url){
  //etc...
Run Code Online (Sandbox Code Playgroud)

  • 使用正则表达式是一种过度杀伤的定义,更不用说开销相当高了. (4认同)
  • @Tyler Eaves:我们假设你有10mb的文字.`strtolower`将花费一些时间来执行,但正则表达式将在第一个上限的char出现时返回true. (4认同)

Ate*_*zki 5

你也可以试试这个

if (!ctype_lower($string)) {
    // there is at least une uppercase character
}
Run Code Online (Sandbox Code Playgroud)

不确定这是否比提出的其他两种方法更有效。

  • 这将适用于包含字母字符 *only* 的字符串。例如,它不适用于字符串 `the quick` 或 `noupper1`。 (5认同)