在Jquery中计算总字符时出错

时间:2014-07-08 09:51:26

标签: javascript jquery html

我有一个textarea。我限制用户使用jQuery在该textarea中只输入100个字符。它工作正常..但我的代码也计算空间。我不希望我的功能将空间算作角色。键盘的所有其他输入都被计为不包括空格的字符。

这是我的jQuery功能。

$(document).ready(function(){
    var totalChars      = 100; //Total characters allowed in textarea
    var countTextBox    = $('#counttextarea') // Textarea input box
    var charsCountEl    = $('#countchars'); // Remaining chars count will be displayed here

    charsCountEl.text(totalChars); //initial value of countchars element
    countTextBox.keyup(function() { //user releases a key on the keyboard
        var thisChars = this.value.replace(/{.*}/g, '').length; //get chars count in textarea
        if(thisChars > totalChars) //if we have more chars than it should be
        {
            var CharsToDel = (thisChars-totalChars); // total extra chars to delete
            this.value = this.value.substring(0,this.value.length-CharsToDel); //remove excess chars from textarea
        }else{
            charsCountEl.text( totalChars - thisChars ); //count remaining chars
        }
    });
});

我的HTML代码如下:

<textarea name="counttextarea" id="counttextarea" cols="30" rows="8"></textarea><br />
<span name="countchars" id="countchars"></span> Characters Left

这是一个小提琴http://jsfiddle.net/6C8zn/

1 个答案:

答案 0 :(得分:1)

您的正则表达式不正确。

而不是

var thisChars = this.value.replace(/{.*}/g, '').length; //get chars count in textarea

使用其中任何一个

var thisChars = this.value.replace(/ /g, '').length;  
var thisChars = this.value.replace(/\s/g, '').length;  

DEMO