你可以用charCodeAt()这个函数来判断一个字符是双字节还是单字节的
比如下面这个函数返回一个字符串的长度:function getLength(strValue) {
var len = 0;
for(var loop = 0; loop < strValue.length; loop++) {
len++;
if (strValue.charCodeAt(loop) > 255) {
len++;
}
}
return len;
}test:
getLength("safenet加密狗免费试用") = 21
比如下面这个函数返回一个字符串的长度:function getLength(strValue) {
var len = 0;
for(var loop = 0; loop < strValue.length; loop++) {
len++;
if (strValue.charCodeAt(loop) > 255) {
len++;
}
}
return len;
}test:
getLength("safenet加密狗免费试用") = 21
解决方案 »
- 请教:ajax中如何动态执行<script...>代码
- easyui怎么动态显示列标题
- jquery的load方法传递textarea数据问题
- js(Jquery) 截取字符串
- 阿里巴巴的这种效果是怎么做到的?
- 在2个输入框里输入某年(如:2006)和那年里的某周(如:43)后,在另2个输入框里立刻显示这周的星期一的日期和星期日的日期?
- 如何用JS操作每个连接上网站的用户的注册表?
- 能判断当前系统打开了几个窗口吗?
- js&DHTML问题:iframe内发生的某个事件比如onclick如何控制主窗口某个对象的属性,如display属性
- 当点击一图片时,该图片换成另外一张,当再点击图片时,换为原来的那张。
- 请教一个浮动层的问题?
- 下拉列表问题,急。
<HTML>
<HEAD>
<TITLE>window.close</TITLE>
<SCRIPT language="JavaScript">
function trimstr(str,len){
// 截取前len个字符 汉字视为两个
// 如果出现汉字被拆开的时候 不加改汉字 长度为len-1
var total=0;var ret="";
for(var i=0;i<str.length;i++){
var nc=str.charCodeAt(i);
var m=(nc>255)?2:1;
if( total+m <= len ){
ret+=str.charAt(i);
total+=m;
}else{
return ret;
}
}
return ret;
}
var s="我们dd的y平dd的会议dd的r";
alert(trimstr(s,18));
</SCRIPT>
</HEAD><BODY>
<input type="hidden" name="input1" value="aaaa\nbbbb">
</BODY>
</HTML>
{
var Cnt= 0;
var i; for(i = 0; i < sString.length; i++)
{
if((( sString.charCodeAt(i) >= 00) && (sString.charCodeAt(i) <= 126 )) ||
(( sString.charCodeAt(i) >= 65377) && (sString.charCodeAt(i) <= 65424)))
{
Cnt = Cnt +1;
}
else
{
Cnt = Cnt +2;
}
}
return Cnt;
}