- 论坛徽章:
- 0
|
- 限制输入框的长度(汉字解决方案)
- <script>
- function getStringUTFLength(str) {
- var value = str.replace(/[^x00-xff]/g," ");
- return value.length;
- }
- function leftUTFString(str,len) {
- if(getStringUTFLength(str)<=len)
- return str;
- var value = str.substring(0,len);
- while(getStringUTFLength(value)>len) {
- value = value.substring(0,value.length-1);
- }
- return value;
- }
- function count() {
- var value = document.getElementById("licenseother").value;
- value = value.replace(/[u4e00-u9fa5]/g," ");
- //alert(value.length);
- if(value.length>=255) {
- with(window.event) {
- cancelBubble = true;
- keyCode=0;
- returnValue = false;
- }
- document.getElementById("licenseother").value = leftUTFString(document.getElementById("licenseother").value,8);
- }
- document.getElementById("result").value = 255-getStringUTFLength(document.getElementById("licenseother").value);
- }
- </script>
- <table width="100%">
- <tr><td>
- 本输入框限制输入255个字符(汉字计算为2个字符:)
- </td></tr>
- <tr><td>
- <textarea cols=80 rows=3 wrap="virtual" id="licenseother" onkeypress="count()" onkeyup="count()" onblur="count();" onChange="count();"></textarea>
- </td></tr>
- <tr><td>
- 剩余字符数:<input type="text" size="3" id="result" value="255">
- </td></tr>
- </table>
- }
复制代码
转帖的,没有测试,不知道在FF中可用不,另外,既然是utf-8,为什么第一行要替换x00-xff为空?
[ 本帖最后由 HonestQiao 于 2005-12-23 22:39 编辑 ] |
|