在javascript中如何得到中英文混合字符串的長度
更新時間:2014年01月17日 15:35:29 作者:
本文為大家介紹下Javascript中如何得到中英文混合字符串的長度,下面有個不錯的教程,感興趣的朋友可以參考下
有同事在公司的OA上發(fā)了個貼子,介紹在javascript中如何得到中英文混合字符串的長度。
用的是正則表達式。
復制代碼 代碼如下:
var str = ”坦克是tank的音譯”;
var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;
我查了一下書,有點明白了:
西文常用字符集由空格“ ”(0x20)到“~”(0x7e)構成,漢字會落在這個字符集外,而正則表達式[^ -~]表示除空格到“~”外的字符集。
復制代碼 代碼如下:
string.match(regex) 會以數(shù)組形式返回字符串string中匹配正則表達式regex的子串,所以,
str.match(/[^ -~]/g)會以數(shù)組的形式返回一個個漢字。例如
var str = "dd大哥";
//顯示"大,哥",數(shù)組中返回兩個漢字,數(shù)組長度為2
alert(str.match(/[^ -~]/g));
這樣,var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;就可以得到str的正確長度了。
在javascript中,一個漢字的長度也被計算為1,常常在提交到數(shù)據(jù)庫中造成長度超標的錯誤,現(xià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截取中英文字符串、標點符號無亂碼示例解讀
- javascript截取字符串(通過substring實現(xiàn)并支持中英文混合)
- JS判斷字符串長度的5個方法(區(qū)分中文和英文)
- Javascript 字符串字節(jié)長度計算函數(shù)代碼與效率分析(for VS 正則)
- js計算字符串長度包含的中文是utf8格式
- js如何判斷輸入字符串長度
- JS獲取字符串型數(shù)組下標的數(shù)組長度的代碼
- js限制textarea每行輸入字符串長度的代碼
- js 判斷計算字符串長度/判斷空的簡單方法
- JavaScript實現(xiàn)的GBK、UTF8字符串實際長度計算函數(shù)
- JS判斷輸入字符串長度實例代碼(漢字算兩個字符,字母數(shù)字算一個)
- JavaScript獲取中英文混合字符串長度的方法示例
相關文章
javascript函數(shù)以及基礎寫法100多條實用整理
100多個很有用的JavaScript函數(shù)以及基礎寫法匯總,在項目開發(fā)中經(jīng)常會使用到,本文整理了一些,希望對你們有幫助2013-01-01Bootstrap框架動態(tài)生成Web頁面文章內(nèi)目錄的方法
這篇文章主要介紹了Bootstrap框架動態(tài)生成Web頁面文章內(nèi)目錄的方法,利用Bootstrap中的Affix和ScrollSpy插件便可以實現(xiàn),需要的朋友可以參考下2016-05-05