在javascript中如何得到中英文混合字符串的長(zhǎng)度
有同事在公司的OA上發(fā)了個(gè)貼子,介紹在javascript中如何得到中英文混合字符串的長(zhǎng)度。
用的是正則表達(dá)式。
var str = ”坦克是tank的音譯”;
var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;
我查了一下書,有點(diǎn)明白了:
西文常用字符集由空格“ ”(0x20)到“~”(0x7e)構(gòu)成,漢字會(huì)落在這個(gè)字符集外,而正則表達(dá)式[^ -~]表示除空格到“~”外的字符集。
string.match(regex) 會(huì)以數(shù)組形式返回字符串string中匹配正則表達(dá)式regex的子串,所以,
str.match(/[^ -~]/g)會(huì)以數(shù)組的形式返回一個(gè)個(gè)漢字。例如
var str = "dd大哥";
//顯示"大,哥",數(shù)組中返回兩個(gè)漢字,數(shù)組長(zhǎng)度為2
alert(str.match(/[^ -~]/g));
這樣,var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;就可以得到str的正確長(zhǎng)度了。
在javascript中,一個(gè)漢字的長(zhǎng)度也被計(jì)算為1,常常在提交到數(shù)據(jù)庫(kù)中造成長(zhǎng)度超標(biāo)的錯(cuò)誤,現(xiàn)在用這個(gè)方法,可以在提交前先檢測(cè)一番了。
注:以上代碼有些符號(hào)有問(wèn)題,經(jīng)修正后,改為如下函數(shù)。
function get_strlength (str)
{
var len = 0;
if (str.match(/[^ -~]/g) == null)
{
len = str.length;
}
else
{
len = str.length + str.match(/[^ -~]/g).length;
}
return len;
}
- js截取中英文字符串、標(biāo)點(diǎn)符號(hào)無(wú)亂碼示例解讀
- javascript截取字符串(通過(guò)substring實(shí)現(xiàn)并支持中英文混合)
- JS判斷字符串長(zhǎng)度的5個(gè)方法(區(qū)分中文和英文)
- Javascript 字符串字節(jié)長(zhǎng)度計(jì)算函數(shù)代碼與效率分析(for VS 正則)
- js計(jì)算字符串長(zhǎng)度包含的中文是utf8格式
- js如何判斷輸入字符串長(zhǎng)度
- JS獲取字符串型數(shù)組下標(biāo)的數(shù)組長(zhǎng)度的代碼
- js限制textarea每行輸入字符串長(zhǎng)度的代碼
- js 判斷計(jì)算字符串長(zhǎng)度/判斷空的簡(jiǎn)單方法
- JavaScript實(shí)現(xiàn)的GBK、UTF8字符串實(shí)際長(zhǎng)度計(jì)算函數(shù)
- JS判斷輸入字符串長(zhǎng)度實(shí)例代碼(漢字算兩個(gè)字符,字母數(shù)字算一個(gè))
- JavaScript獲取中英文混合字符串長(zhǎng)度的方法示例
相關(guān)文章
一個(gè)通過(guò)script自定義屬性傳遞配置參數(shù)的方法
編寫了一個(gè)js插件,要使用該插件需要先在html中引入該插件Js,然后再添加一個(gè)script標(biāo)簽,在里面調(diào)用,需要的朋友可以看看2014-09-09微信小程序按鈕點(diǎn)擊動(dòng)畫效果的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序按鈕點(diǎn)擊動(dòng)畫效果的實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09JS實(shí)現(xiàn)圖片延遲加載并淡入淡出效果的簡(jiǎn)單方法
我們大家都知道,對(duì)于一個(gè)網(wǎng)站最占用帶寬,最影響頁(yè)面顯示速度的東西就是圖片。圖片是很重要的,作為一個(gè)站長(zhǎng)我們是千方百計(jì)的使用各種技巧來(lái)優(yōu)化圖片,但其實(shí)有一種簡(jiǎn)單的方法,只需要幾行代碼就能達(dá)到這種效果。同時(shí)還附加一種淡入淡出的顯示效果,下面一起來(lái)看看。2016-08-08javascript函數(shù)以及基礎(chǔ)寫法100多條實(shí)用整理
100多個(gè)很有用的JavaScript函數(shù)以及基礎(chǔ)寫法匯總,在項(xiàng)目開發(fā)中經(jīng)常會(huì)使用到,本文整理了一些,希望對(duì)你們有幫助2013-01-01Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法
這篇文章主要介紹了Bootstrap框架動(dòng)態(tài)生成Web頁(yè)面文章內(nèi)目錄的方法,利用Bootstrap中的Affix和ScrollSpy插件便可以實(shí)現(xiàn),需要的朋友可以參考下2016-05-05IE瀏覽器下JS腳本提交表單后,不能自動(dòng)提示問(wèn)題解決方法
這篇文章主要介紹了IE瀏覽器下JS腳本提交表單后,不能自動(dòng)提示問(wèn)題解決方法,涉及IE瀏覽器配置與javascript事件處理操作技巧,需要的朋友可以參考下2019-06-06在多個(gè)頁(yè)面使用同一個(gè)HTML片段的代碼
有一個(gè)比較復(fù)雜的HTML片段(A),如果把這個(gè)HTML片段嵌入到其他頁(yè)面中(B,C,D....)。 問(wèn)題的關(guān)鍵是在HTML片段中有大量的JavaScript邏輯需要處理,比如說(shuō)分頁(yè),點(diǎn)擊事件響應(yīng)等。2011-03-03