检查字符串是否包含日文/中文字符

新手上路,请多包涵

我需要一种方法来检查字符串是否包含 日文 中文 文本。

目前我正在使用这个:

 string.match(/[\u3400-\u9FBF]/);

但它不适用于此,例如: ディアボリックラヴァーズバッテリー

你能帮我吗?

谢谢

原文由 Frank 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

通常用于中文和日文文本的 Unicode 字符范围是:

  • U+3040 - U+30FF:平假名和片假名(仅限日语)
  • U+3400 - U+4DBF:CJK统一表意文字扩展A(中日韩)
  • U+4E00 - U+9FFF:CJK统一表意文字(中日韩)
  • U+F900 - U+FAFF:CJK 兼容表意文字(中文、日文和韩文)
  • U+FF66 - U+FF9F:半角片假名(仅限日语)

作为正则表达式,这将表示为:

 /[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f]/

这不包括将出现在中文和日文文本中的 每个 字符,但任何重要的典型中文或日文文本都将主要由这些范围内的字符组成。

请注意,此正则表达式也将匹配包含 hanja 的韩语文本。这是 两汉统一 的必然结果。

原文由 user149341 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用此代码,它对我有用。

 let str = "渣打銀行提供一系列迎合你生活需要嘅信用卡";
//let str = "SGGRAND DING HOUSE 4GRAND DING HOUSE";
const REGEX_CHINESE = /[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f]/;
const hasChinese = str.match(REGEX_CHINESE);
if(hasChinese){
  alert("Found");
}
else{
  alert("Not Found");
}

原文由 hasancse016 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题