用js实现在文本框中检测字数和限制字数功能
生活随笔
收集整理的這篇文章主要介紹了
用js实现在文本框中检测字数和限制字数功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
方法一:在文本框能區(qū)分并限制中文英文字數(shù)功能
首先,既然要限制字數(shù),肯定要想辦法實時獲取用戶在文本框里輸入的文字的數(shù)量。input控件有個length的屬性,可以方便地獲取字數(shù)。可是,它所返回的字數(shù)無論是中文還是英文或者數(shù)字,1個字就算1個字。客戶要限制字數(shù)的原因是為了頁面顯示的時候排版不會亂,因此一個漢字需要按2個英文字符來計算。這樣的話,這個默認的length失效了。
怎么區(qū)分中文和英文呢?string對象有一個叫charCodeAt(index)的方法,可以獲取字符串中某一個字符的編碼。因為字母數(shù)字的ascii編碼都小于255而漢字的編碼肯定大于255,因此我們可以使用此方法來判斷字符串占用多少英文字符的寬度。
效果如下圖:
代碼:
$('.titleArea').keyup(function () {
var hidTitleWordNum = parseInt($('.hidTitleWordNum').val());
var titleAreaVal = $('.titleArea').val();
var sum = 0;
for (var i = 0; i < titleAreaVal.length; i++) {
if ((titleAreaVal.charCodeAt(i) >= 0) && (titleAreaVal.charCodeAt(i) <= 255)) {
sum = sum + 1;
} else {
sum = sum + 2;
}
if (sum > hidTitleWordNum) {
alert("輸入數(shù)據(jù)超長!不能再輸入數(shù)據(jù)。");
var str = titleAreaVal.substring(0, i);
$('.titleArea').val(str);
$('.titleWordNum').text(hidTitleWordNum - getLength($('.titleArea').val()));
break;
} else {
$('.titleWordNum').text(hidTitleWordNum - getLength($('.titleArea').val()));
}
}
});
總結(jié)
以上是生活随笔為你收集整理的用js实现在文本框中检测字数和限制字数功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。