判断是否存在中文和全角字符 str.match(/[^x00-xff]/ig) 判断包含中文字符串长度 aMatch=str.match(/[^x00-x80]/g); str.length+(!aMatch?0:aMatch.length) javascript 判断中文字符长度 一种: 复制代码 代码如下: function _length(str){ var len=0; for(var i=0;i<str.length;i++){ if(str.charAt(i)>'~'){len+=2;}else{len++;} } return len; } 二种: 复制代码 代码如下: String.prototype.gblen = function() { var len = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len += 2; } else { len ++; } } return len; } String.prototype.gbtrim = function(len, s) { var str = ''; var sp = s || ''; var len2 = 0; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len2 += 2; } else { len2 ++; } } if (len2 <= len) { return this; } len2 = 0; len = (len > sp.length) ? len-sp.length: len; for (var i=0; i<this.length; i++) { if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) { len2 += 2; } else { len2 ++; } if (len2 > len) { str += sp; break; } str += this.charAt(i); } return str; } var str1 = '世上最牛的@#%&们 世上最牛的@#%&们'; document.write('str1 = '+ str1 +' '); document.write('length = '+ str1.gblen() +' '); document.write('gbtrim(10) = '+ str1.gbtrim(10) +' '); document.write('gbtrim(10, '…') = '+ str1.gbtrim(10, '…') +' '); document.write('gbtrim(12, '-' ) = '+ str1.gbtrim(12, '-') +' '); // gbtrim(len 截取长度,按英文字节长度计算, s截取后的省略字符,如"…" ) // 备注: 这里中文字符都是当作两个长度来计算的,所以gbtrim中的len为10时,是显示最多5个汉字的。 // 当汉字数大于5时,由于截取后加上“…”,所以只显示4个汉字。
推荐阅读
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
网上流传的什么<<AJAX vs ASP传统无刷新>>中的ASP无刷新,加个IFRAME,弄个JS根本不能称之为无刷新..... 一下代码未区分大小写,请自行修改! 全静态无刷新思路: <HTML> <SCRIPT SRC=""></SCRIPT>//当前页面全局的 无数>>>详细阅读
本文标题:正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
地址:http://www.17bianji.com/kaifa2/JS/29376.html
1/2 1