字串字元長度統計
阿新 • • 發佈:2021-10-28
注意:數字、空格以及標點符號為1個英文字元!漢字為2個字元!
推薦兩個線上網站:
站長工具-線上字數統計工具
良心網站-線上字數統計
<div class="column is-three-fifths-desktop is-narrow"> <h1 class="title is-info is-4">線上字數統計</h1> <div class="field is-horizontal is-info"> <div class="field-body is-info"> <div class="field"> <div class="control"> <textarea class="textarea is-focused" placeholder="輸入(或貼上)統計字數的內容:" rows="12" id="content" autofocus=""></textarea> </div> </div> </div> </div> <div class="buttons is-right"> <button class="button is-loading is-text is-small">Loading</button> <button class="button is-primary is-rounded is-small" type="reset" value="reset" name="reset" onclick="resetForm()">全部清空!</button> </div> <div class="field is-grouped is-grouped-multiline" id="copyArea"> <span class="tag is-medium"> 共計: </span> <div class="control"> <div class="tags has-addons"> <span class="tag is-dark is-medium" id="zishu">71</span> <span class="tag is-primary is-medium">個字數</span> </div> </div> <div class="control"> <div class="tags has-addons"> <span class="tag is-dark is-medium" id="zifu">170</span> <span class="tag is-primary is-medium">個字元</span> </div> </div> </div> <div class="field is-grouped is-grouped-multiline"> <span class="tag"> 包含: </span> <div class="control"> <div class="tags has-addons"> <span class="tag" id="hanzi">29</span> <span class="tag is-danger is-light">個漢字</span> </div> </div> <div class="control"> <div class="tags has-addons"> <span class="tag" id="biaodian">6</span> <span class="tag is-info is-light">個標點(全形)</span> </div> </div> <div class="control"> <div class="tags has-addons"> <span class="tag" id="zimu">58</span> <span class="tag is-success is-light">個字母</span> </div> </div> <div class="control"> <div class="tags has-addons"> <span class="tag" id="shuzi">42</span> <span class="tag is-warning is-light">個數字</span> </div> </div> </div>
function CountChineseCharacters() { Words = $('content').value; var W = new Object(); var Result = new Array(); var iNumwords = 0; var sNumwords = 0; var sTotal = 0; var iTotal = 0; var eTotal = 0; var otherTotal = 0; var bTotal = 0; var inum = 0; for (i = 0; i < Words.length; i++) { var c = Words.charAt(i); if (c.match(/[\u4e00-\u9fa5]/)) { if (isNaN(W[c])) { iNumwords++; W[c] = 1; } iTotal++; } } for (i = 0; i < Words.length; i++) { var c = Words.charAt(i); if (c.match(/[^\x00-\xff]/)) { if (isNaN(W[c])) { sNumwords++; } sTotal++; } else { eTotal++; } if (c.match(/[0-9]/)) { inum++; } } $('hanzi').innerText = iTotal; $('zishu').innerText = inum + iTotal; $('biaodian').innerText = sTotal - iTotal; $('zimu').innerText = eTotal - inum; $('shuzi').innerText = inum; document.getElementById("zifu").innerHTML = iTotal * 2 + (sTotal - iTotal) * 2 + eTotal; }
JQuery 根據位元組數擷取字串()
願中國青年都擺脫冷氣,只是向上走,不必聽自暴自棄者流的話。 能做事的做事,能發聲的發聲。有一分熱,發一分光,就令螢火一般,也可以在黑暗裡發一點光,不必等候炬火。 此後如竟沒有炬火:我便是唯一的光。 倘若有了炬火,出了太陽,我們自然心悅誠服的消失。不但毫無不平,而且還要隨喜讚美這炬火或太陽;因為他照了人類,連我都在內/* * 處理過長的字串,擷取並新增省略號 * 注:半形長度為1,全形長度為2 * * pStr:字串 * pLen:擷取長度 * * return: 擷取後的字串 */ function autoAddEllipsis(pStr, pLen) { var _ret = cutString(pStr, pLen); var _cutFlag = _ret.cutflag; var _cutStringn = _ret.cutstring; if ("1" == _cutFlag) { return _cutStringn + "..."; } else { return _cutStringn; } } /* * 取得指定長度的字串 * 注:半形長度為1,全形長度為2 * * pStr:字串 * pLen:擷取長度 * * return: 擷取後的字串 */ function cutString(pStr, pLen) { // 原字串長度 var _strLen = pStr.length; var _tmpCode; var _cutString; // 預設情況下,返回的字串是原字串的一部分 var _cutFlag = "1"; var _lenCount = 0; var _ret = false; if (_strLen <= pLen/2) { _cutString = pStr; _ret = true; } if (!_ret) { for (var i = 0; i < _strLen ; i++ ) { if (isFull(pStr.charAt(i))) { _lenCount += 2; } else { _lenCount += 1; } if (_lenCount > pLen) { _cutString = pStr.substring(0, i); _ret = true; break; } else if (_lenCount == pLen) { _cutString = pStr.substring(0, i + 1); _ret = true; break; } } } if (!_ret) { _cutString = pStr; _ret = true; } if (_cutString.length == _strLen) { _cutFlag = "0"; } return {"cutstring":_cutString, "cutflag":_cutFlag}; } /* * 判斷是否為全形 * * pChar:長度為1的字串 * return: true:全形 * false:半形 */ function isFull (pChar) { if ((pChar.charCodeAt(0) > 128)) { return true; } else { return false; } }