正則表達(dá)式判斷是否存在中文和全角字符和判斷包含中文字符串長(zhǎng)度
更新時(shí)間:2008年09月27日 15:35:56 作者:
對(duì)于一些更安全的容錯(cuò)嚴(yán)重,需要用到
判斷是否存在中文和全角字符
str.match(/[^\x00-\xff]/ig)
判斷包含中文字符串長(zhǎng)度
aMatch=str.match(/[^\x00-\x80]/g);
str.length+(!aMatch?0:aMatch.length)
javascript 判斷中文字符長(zhǎng)度
一種:
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 截取長(zhǎng)度,按英文字節(jié)長(zhǎng)度計(jì)算, s截取后的省略字符,如"…" )
// 備注: 這里中文字符都是當(dāng)作兩個(gè)長(zhǎng)度來(lái)計(jì)算的,所以gbtrim中的len為10時(shí),是顯示最多5個(gè)漢字的。
// 當(dāng)漢字?jǐn)?shù)大于5時(shí),由于截取后加上“…”,所以只顯示4個(gè)漢字。
str.match(/[^\x00-\xff]/ig)
判斷包含中文字符串長(zhǎng)度
aMatch=str.match(/[^\x00-\x80]/g);
str.length+(!aMatch?0:aMatch.length)
javascript 判斷中文字符長(zhǎng)度
一種:
復(fù)制代碼 代碼如下:
function _length(str){
var len=0;
for(var i=0;i<str.length;i++){
if(str.charAt(i)>'~'){len+=2;}else{len++;}
}
return len;
}
二種:
復(fù)制代碼 代碼如下:
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 截取長(zhǎng)度,按英文字節(jié)長(zhǎng)度計(jì)算, s截取后的省略字符,如"…" )
// 備注: 這里中文字符都是當(dāng)作兩個(gè)長(zhǎng)度來(lái)計(jì)算的,所以gbtrim中的len為10時(shí),是顯示最多5個(gè)漢字的。
// 當(dāng)漢字?jǐn)?shù)大于5時(shí),由于截取后加上“…”,所以只顯示4個(gè)漢字。
相關(guān)文章
用Javascript實(shí)現(xiàn)Windows任務(wù)管理器的代碼
在Windows系統(tǒng)上,自從98系統(tǒng)以來(lái)就提供了腳本宿主(Windows Scripting Host 簡(jiǎn)稱WSH)的功能,WSH可以加載并運(yùn)行JS和VBS腳本,并支持調(diào)用系統(tǒng)的COM組件,在COM組件的支持下腳本可以輕松實(shí)現(xiàn)非常強(qiáng)大的功能2012-03-03
微信小程序開(kāi)發(fā)之a(chǎn)nimation循環(huán)動(dòng)畫(huà)實(shí)現(xiàn)的讓云朵飄效果
這篇文章主要介紹了微信小程序開(kāi)發(fā)之a(chǎn)nimation循環(huán)動(dòng)畫(huà)實(shí)現(xiàn)的讓云朵飄效果,結(jié)合實(shí)例形式分析了animation結(jié)合js時(shí)間函數(shù)實(shí)現(xiàn)循環(huán)動(dòng)畫(huà)效果的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
JS事件循環(huán)-微任務(wù)-宏任務(wù)(原理講解+面試題分析)
這篇文章主要介紹了JS事件循環(huán)-微任務(wù)-宏任務(wù)的原理,本文章含有面試題分析,不管是面試者還是想要學(xué)習(xí)相關(guān)內(nèi)容的都可以很好的理解、掌握這部分內(nèi)容,需要的朋友可以參考下2023-01-01
微信小程序 MinUI組件庫(kù)系列之badge徽章組件示例
這篇文章主要介紹了微信小程序 MinUI組件庫(kù)系列之badge徽章組件示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
理解javascript中的回調(diào)函數(shù)(callback)
這篇文章主要介紹了理解javascript中的回調(diào)函數(shù)(callback),本文著重于對(duì)回調(diào)函數(shù)概念的理解,需要的朋友可以參考下2014-09-09

