想限制韩语和中文

Want to limit korean and chinese

本文关键字:中文 韩语      更新时间:2023-09-26

我需要根据 lang 限制输入框内容。

例如:-

如果输入带有韩语字符的字符串,则允许的字符数为 8。如果输入带有中文字符的字符串,则允许的字符数为 5。如果使用英语,则允许使用 12 个字符。

我的代码适用于IE,Firefox和Chrome中的英文字符。但是,此代码对韩语和中文字符不起作用。即使我增加有效长度,我的代码也总是将字符串的长度削减为 2。请尽快提出一些解决方案。

我正在粘贴我的代码进行检查。

<!DOCTYPE html>
<html>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
            document.onkeydown=function() {

                    var text = $('#lang').val();
                    var hangul = new RegExp("['u1100-'u11FF|'u3130-'u318F|'uA960-'uA97F|'uAC00-'uD7AF|'uD7B0-'uD7FF]"); 
                    var china = new RegExp("['u4E00-'u9FFF|'u2FF0-'u2FFF|'u31C0-'u31EF|'u3200-'u9FBF|'uF900-'uFAFF]"); 
                // alert(hangul.test(text));
                    if(hangul.test(text))
                    {
                        limit = 8; 
                        //console.log("korean");
                        limitCharacters('lang', limit , text);
                    }else if(china.test(text))
                    {
                        limit = 5; 
                        //console.log("china");
                        limitCharacters('lang', limit , text);
                    }else {
                        limit = 11; 
                        limitCharacters('lang', limit , text);
                    }
         };
        function limitCharacters(textid, limit, text)
        {
          //alert('here in limit funt.');
          var textlength = text.length;
           //alert(textlength);
          if(textlength > limit )
           {
             $('#'+textid).val(text.substr(0,limit));
             return false;
           }else {
            $('#'+textid).val(text);
            $('#txt').html(text);
            return true;
           }
        } 

    </script>
<body>
    <input type="text" id="lang" />
</body>
</html>

我解决了这个问题,现在它对我来说工作正常。根据我的理解,IE不支持子字符串。

<html>
        <title> test</title>
        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript" src="http://css-browser-selector.googlecode.com/git/css_browser_selector.js"></script>
        <script src="./beta.fix.js"></script>
        <script>
             var keyFix = new beta.fix('lang');
            jQuery(document).ready( function($) {
                    jQuery('#lang').bind('keyup', checklang);
                });     
              function checklang() {
                        var textid = jQuery(this).attr("id");
                        var text = jQuery(this).val();
                        var hangul = new RegExp("['u1100-'u11FF|'u3130-'u318F|'uA960-'uA97F|'uAC00-'uD7AF|'uD7B0-'uD7FF]"); 
                        var china = new RegExp("['u4E00-'u9FFF|'u2FF0-'u2FFF|'u31C0-'u31EF|'u3200-'u9FBF|'uF900-'uFAFF]"); 
                       // alert(hangul.test(text));
                        if(china.test(text))
                        {
                            limit = 5;
                            console.log("chiness"); 
                        }else if(hangul.test(text))
                        {
                            limit = 8; 
                            console.log("korean"); 
                        }else {
                            limit = 11; 
                            console.log("english"); 
                        }
                        jQuery('#'+textid).attr("maxlength", limit);
             };
        </script>
    <body>
        <input type="text" id="lang" size="100" />
    </body>
    </html>

你能试试这个吗:

var hangul = new RegExp("['u1100-'u11FF|'u3130-'u318F|'uA960-'uA97F|'uAC00-'uD7AF|'uD7B0-'uD7FF]");
var china = new RegExp("['u4E00-'u9FFF|'u2FF0-'u2FFF|'u31C0-'u31EF|'u3200-'u9FBF|'uF900-'uFAFF]");
$("#lang").on("keypress keyup", function () {
    var that = $(this);
    var text = that.val();
    if (china.test(text)) {
        limit = 5;
    } else if (hangul.test(text)) {
        limit = 8;
    } else {
        limit = 11;
    }
    that.attr("maxlength", limit);
    if (text.length > limit) that.val(text.substring(0, limit))
});

也在 http://jsfiddle.net/sWPeN/1/