输入框如何限制中英字符长度不等?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入框如何限制中英字符长度不等?相关的知识,希望对你有一定的参考价值。

如中文限制10个英文字符为20个

直接使用正则表达式获取中英混合字符串的长度,可以统一限制的字符数;

示例代码:<td><input title="每行最多输入71个字符,超出范围或无法输入时,请手动换行..." align="right"

onkeyup="yanzheng1(this, 10);" onblur="yanzheng1(this, 10);" name="causeVerify" size="113" value="$causeVerify " class="lineStyle2"></td>

其中使用了失去焦点的触发事件是为了处理使用鼠标复制、粘贴的情况;

JS:

参考技术A 我这正好有个实现方法:

这个是简单点的:
function checkWord(len,evt)
//len为英文字符的个数,中文自动为其一般数量
//evt是欲检测的对象
var str = evt.value;
var myLen = 0;
for(i=0; i<str.length&&myLen<=len; i++)
if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128)
myLen++;
else
myLen+=2;

if(myLen>len)
alert("您输入超过限定长度");
evt.value = str.substring(0,i-1);


用的时候,可以把函数checkWord绑定到输入框的blur或onkeyup等事件上
例如:
<input type="text" onblur="checkWord(20,this)" />
//上面的这个this就这样写就行了

还有一个复杂点的:
String.prototype.trim = function()
return this.replace(/(^\s*)|(\s*$)/g, "");


function checkWord(len,evt)
if(evt==null) evt = window.event;
var src = evt.srcElement ? evt.srcElement : evt.target;
var str=src.value.trim();
var myLen = 0;
for(i=0;(i<str.length)&&(myLen<=len);i++)
if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128)
myLen++;
else
myLen+=2;

if(myLen>len)
alert("您输入超过限定长度");
src.value=str.substring(0,i-1);


用法类似,可以把函数checkWord绑定到输入框的blur或onkeyup等事件上
例如:
<input type="text" onblur="checkWord(20,event)" />
//上面的这个event就这样写就行了本回答被提问者采纳

cstring 限制字符长度

我只要从 编辑框内(cstring类型) 获得2个字符长度,不知道有没有办法

CString str1,str2;
str2=str1.Left(2);
//str2就是str1左边2个字符
参考技术A 比如:
CString s="dfdsa";
CString a=s.Mid(3,2); //指从第3个位子开始取2个字符长度.

以上是关于输入框如何限制中英字符长度不等?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 输入框如何限制字符长度和emoji

Android 系统搜索框 如何限制输入字数长度?

一般情况下聊天输入框会限制多少字符

C#限制文本框输入

限制输入框字符长度

cstring 限制字符长度