麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

在javascript中如何得到中英文混合字符串的長度

2019-11-20 21:14:02
字體:
來源:轉載
供稿:網友

有同事在公司的OA上發了個貼子,介紹在javascript中如何得到中英文混合字符串的長度。

用的是正則表達式。

復制代碼 代碼如下:

var str = ”坦克是tank的音譯”;
var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;

我查了一下書,有點明白了:

西文常用字符集由空格“ ”(0x20)到“~”(0x7e)構成,漢字會落在這個字符集外,而正則表達式[^ -~]表示除空格到“~”外的字符集。
復制代碼 代碼如下:

string.match(regex) 會以數組形式返回字符串string中匹配正則表達式regex的子串,所以,
str.match(/[^ -~]/g)會以數組的形式返回一個個漢字。例如
var str = "dd大哥";
//顯示"大,哥",數組中返回兩個漢字,數組長度為2
alert(str.match(/[^ -~]/g));

這樣,var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;就可以得到str的正確長度了。

在javascript中,一個漢字的長度也被計算為1,常常在提交到數據庫中造成長度超標的錯誤,現在用這個方法,可以在提交前先檢測一番了。

注:以上代碼有些符號有問題,經修正后,改為如下函數。
復制代碼 代碼如下:

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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 性看小视频 | 亚洲av一级毛片特黄大片 | 爱爱视频天天干 | 国产精品久久久久久久久久久久午夜 | 国产手机av在线 | 欧美成人午夜一区二区三区 | 国产成人精品日本亚洲语音 | 男女一边摸一边做羞羞视频免费 | 日本xxxx色视频在线观看免费, | wwwcom国产| 草久在线观看视频 | 久久精品欧美电影 | 精品在线视频观看 | av色哟哟| xx53xx| 偷偷草网站 | 在线看一级片 | 欧美三级日本三级少妇99 | 好吊一区二区三区 | 成人男女啪啪免费观看网站四虎 | 国产精品视频免费在线观看 | 精品一二三区视频 | 国产91丝袜在线熟 | 久久亚洲美女视频 | 在线日韩亚洲 | 久啪视频 | 亚州精品在线视频 | 国产精品久久久久国产精品三级 | 国产黄色免费网站 | 欧美日韩在线视频观看 | 澳门一级淫片免费视频 | 精品一区二区电影 | 九九热免费精品视频 | 欧美一区2区三区4区公司二百 | 羞羞电影网 | 亚洲第一成人在线观看 | 国产成人精品午夜 | 黄色电影免费提供 | 日韩视频一区在线 | 久久国产亚洲精品 | av在线等|