JavaScript獲取字符串實(shí)際長(zhǎng)度(包含中英文)
日常開發(fā)過程中,經(jīng)常會(huì)遇到需要計(jì)算字符串的實(shí)際長(zhǎng)度(包含中英文),今天整理下我平時(shí)使用的方法:
方法一:使用charCodeAt()來判斷字符編碼
charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個(gè)返回值是 0 - 65535 之間的整數(shù)。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> /** * 獲取字符串實(shí)際長(zhǎng)度(包含中英文) * @param str 要獲得長(zhǎng)度的字符串 */ 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í)際長(zhǎng)度(包含中英文)sdfdsf')) </script> </head> <body> </body> </html>
方法二: 簡(jiǎn)化版使用charCodeAt()來判斷字符編碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> /** * 獲取字符串實(shí)際長(zhǎng)度(包含中英文) * @param str 要獲得長(zhǎng)度的字符串 */ 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í)際長(zhǎng)度(包含中英文)sdfdsf')) </script> </head> <body> </body> </html>
方法三: 先把中文替換成兩個(gè)字節(jié)的英文,再計(jì)算長(zhǎng)度(推薦使用)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> /** * 獲取字符串實(shí)際長(zhǎng)度(包含中英文) * @param str 要獲得長(zhǎng)度的字符串 */ var zfc = {}; zfc.getStringLength = function (str) { return str.replace(/[\u0391-\uFFE5]/g, 'aa').length; }; console.log(zfc.getStringLength('aaa獲取字符sfdsf串實(shí)際長(zhǎng)度(包含中英文)sdfdsf')) </script> </head> <body> </body> </html>
到此這篇關(guān)于JavaScript獲取字符串實(shí)際長(zhǎng)度的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js中的onchange和onpropertychange (onchange無效的解決方法)
這篇文章主要介紹了js中的onchange和onpropertychange (onchange無效的解決方法),需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-03-03KnockoutJS 3.X API 第四章之click綁定
click綁定主要作用是用于DOM元素被點(diǎn)擊時(shí)調(diào)用相關(guān)JS函數(shù)。這篇文章主要介紹了KnockoutJS 3.X API 第四章之click綁定,感興趣的朋友一起看看吧2016-10-10javascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例
下面小編就為大家?guī)硪黄猨avascript遍歷json對(duì)象的key和任意js對(duì)象屬性實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03Layui 數(shù)據(jù)表格批量刪除和多條件搜索的實(shí)例
今天小編就為大家分享一篇Layui 數(shù)據(jù)表格批量刪除和多條件搜索的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09JS實(shí)現(xiàn)六邊形3D拖拽翻轉(zhuǎn)效果的方法
這篇文章給大家分享一個(gè)利用javascript實(shí)現(xiàn)3D六邊形拖拽翻轉(zhuǎn)的效果實(shí)例,實(shí)現(xiàn)后的效果很贊,對(duì)大家的學(xué)習(xí)Javascript具有一定的參考借鑒價(jià)值,有需要的朋友們一起去來看看吧。2016-09-09