JavaScript獲取字符串實(shí)際長度(包含中英文)
日常開發(fā)過程中,經(jīng)常會遇到需要計(jì)算字符串的實(shí)際長度(包含中英文),今天整理下我平時(shí)使用的方法:
方法一:使用charCodeAt()來判斷字符編碼
charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個(gè)返回值是 0 - 65535 之間的整數(shù)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
/**
* 獲取字符串實(shí)際長度(包含中英文)
* @param str 要獲得長度的字符串
*/
var zfc = {};
zfc.getStringLength = function (str) {
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128)
realLength += 1;
else
realLength += 2;
}
return realLength;
};
console.log(zfc.getStringLength('aaa獲取字符sfdsf串實(shí)際長度(包含中英文)sdfdsf'))
</script>
</head>
<body>
</body>
</html>方法二: 簡化版使用charCodeAt()來判斷字符編碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
/**
* 獲取字符串實(shí)際長度(包含中英文)
* @param str 要獲得長度的字符串
*/
var zfc = {};
zfc.getStringLength = function (str) {
var len = str.length;
var realLength = 0;
for (var i = 0; i < len; i++) {
if ((str.charCodeAt(i) & 0xff00) != 0) {
realLength++;
}
realLength++;
}
return realLength;
};
console.log(zfc.getStringLength('aaa獲取字符sfdsf串實(shí)際長度(包含中英文)sdfdsf'))
</script>
</head>
<body>
</body>
</html>方法三: 先把中文替換成兩個(gè)字節(jié)的英文,再計(jì)算長度(推薦使用)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
/**
* 獲取字符串實(shí)際長度(包含中英文)
* @param str 要獲得長度的字符串
*/
var zfc = {};
zfc.getStringLength = function (str) {
return str.replace(/[\u0391-\uFFE5]/g, 'aa').length;
};
console.log(zfc.getStringLength('aaa獲取字符sfdsf串實(shí)際長度(包含中英文)sdfdsf'))
</script>
</head>
<body>
</body>
</html>到此這篇關(guān)于JavaScript獲取字符串實(shí)際長度的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript 簡單抽屜效果的實(shí)現(xiàn)代碼
javascript 簡單抽屜效果的實(shí)現(xiàn)代碼,需要的朋友可以參考下,大家自行測試。2010-03-03
select下拉框插件jquery.editable-select詳解
本篇文章主要介紹了select下拉框插件jquery.editable-select。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
JavaScript中const、var和let區(qū)別淺析
在JavaScript中有三種聲明變量的方式:var、let、const。但是有朋友不清楚這三種聲明變量的區(qū)別,下面腳本之家小編給大家詳細(xì)介紹下js中const、var和let的區(qū)別,感興趣的朋友一起看看吧2016-10-10
layui+ssm實(shí)現(xiàn)數(shù)據(jù)批量刪除功能
本篇文章給大家介紹layui+ssm實(shí)現(xiàn)數(shù)據(jù)批量刪除功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
JavaScript設(shè)計(jì)模式之工廠模式和抽象工廠模式定義與用法分析
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之工廠模式和抽象工廠模式,結(jié)合實(shí)例形式分析了工廠模式的功能、定義、相關(guān)問題解決方法,并分析抽象工廠模式與工廠模式的不同之處,需要的朋友可以參考下2018-07-07

