将文本区域限制为固定数量的中文字符

Limiting a textarea to a fixed number of chinese characters

本文关键字:中文 字符 区域 文本      更新时间:2023-09-26

我从客户端得到一个要求,说限制文本区域- 200个字符在英语中,它是大约66个字符的UTF8。

我想知道我如何检查它们是中文字符还是英文字符,并在最大长度的意义上计算它们

好了,所以我找到了一种方法(基于UTF-8),对我来说很有用。但是当我想到客户端时,它仍然是"讨厌的",因为他们仍然能够在检查dom元素.....时编辑它

请给我建议。由于

代码:我的文本区和计数框:

<textarea class="message" name="quiz_answer" cols="30" rows="4"></textarea><br />
<span class="countdown"></span>

Jquery文档准备:

updateCountdown();
$('.message').attr('maxLength','25');
$('.message').keyup(updateCountdown);

updateCountdown函数():

var previous = '';
var current = '';

//Count textarea words
function updateCountdown() {

var countMe = $(".message").val();
if(previous==''){
            previous = countMe;
            current = countMe;
}else{
            current = countMe;
}

    var escapedStr = encodeURI(countMe);
    if (escapedStr.indexOf("%") != -1) {
        var count = escapedStr.split("%").length - 1;
        if (count == 0) count++  //perverse case; can't happen with real UTF-8
        var tmp = escapedStr.length - (count * 3);
        count = count + tmp;
    } else {
        count = escapedStr.length;
    }

// 200 is the max message length
var remaining = 200 - count;

$('.countdown').text(remaining + ' characters remaining.');

if(remaining < 0){
            $(".message").val(previous);
}else{
           previous = current;
}
}