javascript - 使用 JavaScript 测试输入是韩语还是中文的正确方法是什么?

标签 javascript unicode chinese-locale

我的应用程序依赖于此函数来测试字符串是否为韩语:

const isKoreanWord = (input) => {
  const match = input.match(/[\u3131-\uD79D]/g);
  return match ? match.length === input.length : false;
}

isKoreanWord('만두'); // true
isKoreanWord('mandu'); // false

直到我开始包括中文支持,现在这个功能是不连贯的:

isKoreanWord('幹嘛'); // true

我认为这是由于韩文字符和中文字符混杂在同一个 Unicode 范围内造成的。

如果输入仅包含韩文字符,我应该如何更正此函数以使其返回 true

最佳答案

这是韩文所需的 unicode 范围(取自他们的 wikipedia 页面)。

U+AC00–U+D7AF
U+1100–U+11FF
U+3130–U+318F
U+A960–U+A97F
U+D7B0–U+D7FF

所以你的正则表达式 .match 应该是这样的:

const match = input.match(/[\uac00-\ud7af]|[\u1100-\u11ff]|[\u3130-\u318f]|[\ua960-\ua97f]|[\ud7b0-\ud7ff]/g);

关于javascript - 使用 JavaScript 测试输入是韩语还是中文的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52989330/

相关文章:

javascript - 使用 javascript 将 JSON 对象转换为数组

javascript - jQuery Mobile - pageinit 与 pageshow

javascript - 单击时向图像映射部分添加颜色轮廓(jQuery)

javascript - Electron的WebView.loadURL触发重新加载

java - 使用正则表达式检查特定字符串

unicode - Unicode 图表中的 XXX 指标是什么意思

internet-explorer - 如何在 IE7 中为 IMG ALT 的工具提示正确显示 Unicode 字符?

chinese-locale - 如何在腾讯或360手机上发布我的Android应用程序?

vue.js - Element UI 中文分页而不是英文

java - 在中文文本上使用 Python 中的斯坦福解析器不起作用