JavaScript 擷取指定長度字串 區分漢字和英文字元
擷取字串是常見操作,比如,往往將新聞標題的長度規定在一個恰當的範圍之內。
此時就需要進行擷取字串的操作,實現方式有多種,可以使用substr()方法。
上述方法有時候並不能完全滿足需求,有時需要區分漢字還是英文字元。
一個英文字元佔據一個位元組,一個漢字佔據兩個位元組。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> function cutString(str, len) { var strlen = 0; var restr = ""; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 128) { strlen += 2; } else { strlen++; } restr += str.charAt(i); if (strlen >= len) { return restr; } } return restr; } var mystring = "hello,歡迎來到螞蟻部落" var num = 10; alert(cutString(mystring, num)); </script> </head> <body> </body> </html>
以上程式碼可以擷取指定長度的字串,並且能夠區分漢字和英文字元:
一.實現原理:
(1).通過字串length屬性取得字串中字元的數目,此時不區分漢字和英文字元。
(2).然後通過for迴圈來遍歷它們,並利用charCodeAt()方法獲得相應位置字元的ASCII碼值。
(3).英文字元的ASCII碼值最大為127,所以小128即是英文字元,大於128即是漢字。
(4).如果是漢字則strlen值加2,如果是英文字元則加1,並且將相應索引的字元新增到restr中。
(5).最後判斷strlen值是否已經大於等於指定長度,如果為真則返回restr,否則繼續進行for迴圈。
(6).如果直到for迴圈完成也沒有超過指定長度,最後返回該字串。
二.程式碼註釋:
(1).var strlen=0用於儲存每一次for迴圈後字串的長度。
(2).var restr=""用於儲存每一次for迴圈後的字串。
(3).for迴圈用來便利字串中的每一個字元,這裡的字元是不區分中英文的。
(4).if(str.charCodeAt(i)>128)判斷指定字元是英文字元還是漢字,如果是漢字strlen加2,否則加1。
(5).restr+=str.charAt(i);將指定索引的字元新增到restr。
(6).if(strlen>=len)判斷是否已經超過指定長度,超過則返回restr,否則繼續執行for迴圈。
(7).最後一個return rest:如果整個字串長度都沒有超過指定長度,那麼原樣返回。
相關文章
- JavaScript 擷取字串右邊指定長度字元JavaScript字串字元
- JavaScript 擷取指定指定區間字串JavaScript字串
- JavaScript獲取字串的長度區分漢字JavaScript字串
- php 擷取中英文混合字串PHP字串
- PHP字串學習之如何返回漢字或混合字元的長度PHP字串字元
- 得到字串 位元組 長度 中文 兩個字元 英文一個字元字串字元
- 擷取 UTF8 編碼字串從首位元組開始指定寬度 (非長度)字串
- JavaScript replace()替換字串中指定字元JavaScript字串字元
- JavaScript 刪除字串中所有指定字元JavaScript字串字元
- JavaScript刪除字串中所有指定字元JavaScript字串字元
- JavaScript刪除字串中的指定字元JavaScript字串字元
- JavaScript獲取字串指定索引位置字元JavaScript字串索引字元
- JavaScript 獲取指定區間的數字JavaScript
- 獲取C/C++字串、字元陣列長度C++字串字元陣列
- 字串擷取字串
- JavaScript 擷取字串JavaScript字串
- 字串擷取 slice,substr,substring 的區別字串
- 寫個方法,找出指定字串中重複最多的字元及其長度字串字元
- Javascript之字串擷取函式slice()、substring()、substr()JavaScript字串函式
- mysql 擷取指定的兩個字串之間的內容MySql字串
- 字串-刪除指定字元字串字元
- MySQL 字串函式:字串擷取MySql字串函式
- 直播軟體原始碼,JS獲取指定長度的隨機字元原始碼JS隨機字元
- Linux 中 awk命令如何擷取指定欄位的前幾個字元Linux字元
- Mysql從指定位置擷取字串MySql字串
- jQuery字串擷取詳解jQuery字串
- JavaScript擷取字串方式總結JavaScript字串
- Golang 字串分割,替換和擷取 strings.SplitGolang字串
- 字串不能以指定字元開頭字串字元
- Python 漢字區位碼、字串 相互轉換Python字串
- JavaScript計算字串位元組長度JavaScript字串
- js 英文中文混擷取 相同個數JS
- Jquery Validate自定義驗證規則,一個漢字等於兩個字元長度jQuery字元
- 正則匹配指定字元之前的字串字元字串
- Linux下的字串擷取詳解Linux字串
- Shell中的字串擷取介紹字串
- shell 使用陣列及字串擷取陣列字串
- C#常用字串擷取C#字串