【问题标题】:Not allow Korea character for input text不允许输入文本的韩国字符
【发布时间】:2018-10-19 08:06:44
【问题描述】:

我想允许输入英文字符,但我不希望用户可以输入韩文字符。 请帮我解答。先感谢您。

【问题讨论】:

  • 为什么需要将文本限制为仅限拉丁字符?
  • 这是基本多语言平面的 Unicode 范围表:en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane。如果您只想限制韩语(而不是中文、日语、印度尼西亚语等),则需要匹配韩文范围内的任何字符(其中有 5 个)。

标签: javascript jquery html internationalization


【解决方案1】:

根据这篇文章, https://en.wikipedia.org/wiki/Korean_language_and_computers

你会想做这样的事情(未经测试):

$(document).on('keypress', 'input', function (e) {
    var key = event.which || event.keyCode;

    // Hangul Syllables
    if (key >= 0xAC00 && key <= 0xD7A3) {
        e.preventDefault();
    }

    // Hangul Jamo
    if (key >= 0x1100 && key <= 0x11FF) {
        e.preventDefault();
    }

    // Hangul Compatibility Jamo 
    if (key >= 0x3130 && key <= 0x318F) {
        e.preventDefault();
    }

    // Hangul Jamo Extended-A
    if (key >= 0xA960 && key <= 0xA97F) {
        e.preventDefault();
    }

    // Hangul Jamo Extended-B 
    if (key >= 0xD7B0 && key <= 0xD7FF) {
        e.preventDefault();
    }
});

但是,这不会阻止任何人将韩文字符复制/粘贴到输入字段中,您需要为此找到单独的内容。

更简化的方法是使用表单验证(这是一种更简化的方法):

<input type="text" pattern="[^가-힣]+">

您应该做的是在服务器端测试字符并返回表单错误。

【讨论】:

  • $("#TLPHN").on("keypress keyup blur",function (event) { var val = $(this).val(); if(/[\u3131-\uD79D ]/gi.test(val)){ // /[^\u0000-\u007F]/gi : unicode 字符, /[\u3131-\uD79D]/gi : kor 字符 $(this).val(val.replace (/[\u3131-\uD79D]/gi, "")); } });
猜你喜欢
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
  • 2015-02-04
  • 1970-01-01
相关资源
最近更新 更多