You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript正则表达式检测字符串中的非英文字符

检测字符串中的非英文字符

嘿,这个需求挺明确的!要判断字符串里有没有俄文、中文这类非英文字符,同时允许数字、下划线、连字符、点号这些符号对吧?用正则表达式就能轻松搞定,给你写个简单的JavaScript函数:

function hasNonEnglishChars(str) {
  // 匹配所有不在英文字母、数字、下划线、连字符、点号范围内的字符
  const regex = /[^a-zA-Z0-9_\-.]/;
  return regex.test(str);
}

咱们来测试你给的几个例子:

  • hasNonEnglishChars("отправка.py") → 返回 true(因为包含俄文字符)
  • hasNonEnglishChars("bla.py") → 返回 false(全是允许的字符)
  • hasNonEnglishChars("bla23.py") → 返回 false(数字也允许)
  • hasNonEnglishChars("bla23_.py") → 返回 false(下划线没问题)

简单解释下这个正则:[^...] 是反向匹配,意思是匹配任何不在括号里的字符。括号里的a-zA-Z覆盖大小写英文字母,0-9是数字,_\-.是允许的符号(注意连字符-放在最后或者转义,避免被当成范围符)。如果之后需要加其他允许的符号,直接把符号加到括号里就行,比如要允许@,就改成[^a-zA-Z0-9_\-.@]。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:02:39