乐闻世界logo
搜索文章和话题

如何判断字符串是否为纯 ASCII 字符串

2月21日 16:18

如何判断一个字符串是否为纯 ASCII 字符串:

方法 1:Python 实现

python
def is_ascii(s): try: s.encode('ascii') return True except UnicodeEncodeError: return False # 或使用 ord() 函数 def is_ascii_v2(s): return all(ord(c) < 128 for c in s)

方法 2:JavaScript 实现

javascript
function isASCII(str) { return /^[\x00-\x7F]*$/.test(str); } // 或使用 codePointAt() function isASCIIV2(str) { for (let i = 0; i < str.length; i++) { if (str.codePointAt(i) > 127) { return false; } } return true; }

方法 3:Java 实现

java
public static boolean isASCII(String str) { return str.chars().allMatch(c -> c < 128); } // 或使用正则表达式 public static boolean isASCIIV2(String str) { return str.matches("\\A\\p{ASCII}*\\z"); }

方法 4:C/C++ 实现

c
#include <stdbool.h> #include <string.h> bool is_ascii(const char* str) { for (size_t i = 0; str[i] != '\0'; i++) { if ((unsigned char)str[i] > 127) { return false; } } return true; }

方法 5:Go 实现

go
func isASCII(s string) bool { for _, r := range s { if r > 127 { return false } } return true }

性能优化建议:

  1. 提前终止:发现非 ASCII 字符立即返回
  2. 批量检查:使用 SIMD 指令加速(C/C++)
  3. 缓存结果:对重复检查的字符串缓存结果
  4. 使用正则表达式:适合简单场景

注意事项:

  • 空字符串视为 ASCII 字符串
  • 控制字符(0-31)也是 ASCII
  • 注意字符串编码格式
  • 考虑 Unicode 组合字符
标签:ASCII