PHP:如何知道字符串中的所有字母都是大写?
如何知道字符串中的所有字母都是大写?
How to know that all letters in a string are upper case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何知道字符串中的所有字母都是大写?
How to know that all letters in a string are upper case?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
您可以使用 strtoupper 将字符串转换为大写。现在您知道它是大写的,您可以检查原始字符串是否与它匹配。
IE。
You can use strtoupper to convert your string to uppercase. You now know that it is uppercase, and you can check if the original string matches it.
ie.
您可以尝试制作字符串的副本,将副本转换为大写,然后将其与原始字符串进行比较:
或者,更好的版本(多字节安全*)将是:
*注意 mb_detect_encoding 可能会失败,并返回 false。在生产环境中,您应该向 mb_detect_encoding 提供可能的编码列表,或处理 mb_detect_encoding 的情况失败。
You could try making a copy of the string, convert the copy to upper case, and compare it to the original string:
OR, a better version (which is multibyte-safe*) would be:
*Note that mb_detect_encoding can fail, and return false. In a production environment you should either provide a list of possible encodings to mb_detect_encoding, or handle the case where mb_detect_encoding fails.
使用
mb_strtoupper
,其中特殊字符涉及编码。使用
strcmp
进行二进制安全字符串比较。Use
mb_strtoupper
where special character encodings are involved.Use
strcmp
for binary-safe string comparison.如果所有字符都是字母,并且它是一个 ascii 字符串,则 ctype_upper() 可能是一种可能性。
ctype_upper() might be a possibility if all the characters are letters, and it's an ascii string.
如果它是一个很长的字符串并且您不想制作副本,则遍历该字符串并查看每个字符的 ascii 值。如果它小于 97,则说明它全部是大写。
If its a long string and you don't want to make a copy then walk the string and look at each character's ascii value. If it is less than 97 you know it is all uppercase.