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

Fra*_*ank 9 javascript regex

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

目前我正在使用这个:

string.match(/[\u3400-\u9FBF]/);
Run Code Online (Sandbox Code Playgroud)

但它不适用于此例如:?????????????????.

你能帮帮我吗?

谢谢

dus*_*uff 13

常用于中文和日文文本的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]/
Run Code Online (Sandbox Code Playgroud)

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

请注意,此正则表达式也将匹配包含hanja的韩语文本.这是汉族统一的不可避免的结果.

  • 要将韩语字符添加到正则表达式中,请使用以下命令:`\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uf900-\ufaff\uff66-\uff9f\u3131-\uD79D` (2认同)