我正在创建一个输入系统,其中字段最大值只能是200字节。我通过以下计算剩余字节数(这可能方法,但为辩论,太!):基于字节而不是字符数的子空间
var totalBytes = 200;
var $newVal = $(this).val();
var m = encodeURIComponent($newVal).match(/%[89ABab]/g);
var bytesLeft = totalBytes - ($newVal.length + (m ? m.length : 0));
这似乎很好地工作,但是如果有人在一大块数据的粘贴,我希望能够切分输入并只显示200字节。我想在伪代码,看起来像这样:
$newText = substrBytes($string, 0, 200);
任何帮助或指导,将不胜感激。
编辑:一切会在这里为UTF-8 BTW :)
编辑2:我知道,我可以循环的每一个字符和评价,我觉得我希望有可能是一个多一点优雅来照顾这一点。
谢谢!
什么是对待你的输入以字节为单位,而不是文本的原因是什么?请参阅http://www.w3schools.com/jsref/jsref_obj_string.asp上的字符串方法 – jazzytomato 2012-04-18 11:38:32
我可能错了,但我的印象是这需要字符编码之间的某种类似iconv的转换。听起来不容易。 – 2012-04-18 11:42:35
插入的系统要求文本有效负载大小不大于200字节。 – Slazlaa 2012-04-18 11:43:12