在body的textarea里输入文字(中文或者英文),如何写一段JavaScript代码来判断textarea里的文字长度。要求:中文算两个字符,英文算一个字符。尝试使用length函数,但是该函数无法区分出长度,比如:“你好”和“ni”该函数都把它算成长度为:2。而我实际上想让其返回的结果值分别为:4和2。该如何处理??
---------------------------------------------------------------
//检查字符串中的汉字,每个汉字按两个字节计算,字节数不能大于maxlen,且可为空
function check_character2(theField,theAlert,maxlen)
{
var theValue=theField.value;
if(theValue.length==0) return true;
var bytelen=0;
var re=/[^\x00-\xff]/g;
re.compile();
for(var i=0;i
1<thevalue.length;i++){ bytelen="bytelen+2;" bytelen+="1;" if(bytelen="" if(re.test(thevalue.charat(i)))="" {="" }="" }else{="">maxlen)
2{
3alert(theAlert+"输入长度大于"+maxlen+",请重新输入!");
4return false;
5}
6return true;
7}
8
9\---------------------------------------------------------------
10
11输入字符,提示字节数<input name="w" size="20" type="text"/><input name="B1" onclick="alert(w.value.replace(/[^\x00-\xff]/g,'**').length)" type="submit"/>
12
13\---------------------------------------------------------------
14
15不一定是中文才算两个字节,全角字符也会被算成两个字节。先把所有全角字符转化成半角,然后再取其length就可以知道字符串的长度了。
16// 全角文字,半角文字的长度計算
17function getLength(sCheck) {
18var n = 0;
19// 全角字符转化成半角
20var str = toHankaku(sCheck);
21var len = str.length;
22for (var i = 0; i < len; i++) {
23// MSIE环境的全角文字判断
24n += checkMZenKaKu(str.charAt(i)) ? 2 : 1;
25}
26return n;
27}</thevalue.length;i++){>