本文實(shí)例講述了JS判斷字符串字節(jié)數(shù)并截取長(zhǎng)度的方法。分享給大家供大家參考,具體如下:
這是在項(xiàng)目制作中,積累到的一個(gè)東西,感覺(jué)效果還可以,現(xiàn)在貼上效果:
那么,在頁(yè)面上,我們需要檢測(cè)兩個(gè)東西,一個(gè)就是字節(jié)數(shù),一個(gè)就是字符數(shù)。
由于數(shù)據(jù)庫(kù)中,要求title的長(zhǎng)度字節(jié)數(shù)為200,那么具體的js代碼如下:
/*************************************************************************
* CodeBy:SCY CodeDate:2011年3月11日 12:01:16
* DESC:主要是用來(lái)判斷當(dāng)前輸入的字節(jié)數(shù),以便做到限制輸入標(biāo)題的長(zhǎng)度功能
**************************************************************************/
var matchWords;
function notifyTextLength() {
var inputNum = document.getElementById("txtTitle").value.replace(/[^\x00-\xff]/g, "**").length; //得到輸入的字節(jié)數(shù)
if (inputNum <= 200) {
matchWords = document.getElementById("txtTitle").value.length;
document.getElementById("inputedWord").innerHTML = inputNum + "字節(jié)," + matchWords + "字符";
document.getElementById("inputtingWord").innerHTML = (200 - inputNum) + "字母,"+(Math.round(((200-inputNum)/2)-0.5))+"漢字";
}
if (inputNum > 200) {
document.getElementById("txtTitle").value = document.getElementById("txtTitle").value.substring(0, matchWords); //如果超過(guò)200字節(jié),就截取到200字節(jié)
}
}
其中,matchWords代表的是當(dāng)字節(jié)數(shù)小于200的情況下,匹配的字符的個(gè)數(shù);inputNum則是輸入的字節(jié)數(shù)。
當(dāng)標(biāo)題輸入的字節(jié)數(shù)大于200的時(shí)候,就按照字符個(gè)數(shù)進(jìn)行截取。
html代碼如下:
<input id="txtTitle" type="text" class="inputText" runat="server" onpropertychange="notifyTextLength();" />
當(dāng)前已經(jīng)輸入<span id="inputedWord" style="color:red"></span>
還可以輸入<span id="inputtingWord" style="color:Red;"></span>
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。