在某个时刻到达时对字符进行计数

counts the characters when reached at some point

本文关键字:字符 时刻      更新时间:2023-09-26

我有以下代码,运行良好;

var text_max = 459;
    var text_used = 0;
    var sms_count = 0;
    $('#leftstring').html(text_max + '');
    $('#usedstring').html(text_used + '');
    $('#sms_count').html(sms_count + '');
    $(document).on("keyup","#Message", function() {
        var text_length = $('#Message').val().length;
        var text_remaining = text_max - text_length;
        var text_completed = text_used + text_length;
        if(text_length <= 152) {
            var smscounts =+ parseInt(smscounts)+1;
        }
        $('#leftstring').html(text_remaining + '');
        $('#usedstring').html(text_completed + '');
        $('#sms_count').html(smscounts + '');
    });

问题是sms_count,因为我正在尝试的是:我有459个字符的限制,所以我想用3除以它,所以当字符到达152时,它应该计数到1,然后对于下一个152,它应该计到2,然后对于最后的152,它应该计算到3

您可能可以使用Math.ceil()来查找必须发送的最小消息数。

var per_text = 152
$(document).on("keyup","#Message", function() {
    var text_length = $('#Message').val().length;
    var text_remaining = text_max - text_length;
    var text_completed = text_used + text_length;
    var smscounts = Math.ceil(text_length / per_text);
    $('#leftstring').html(text_remaining + '');
    $('#usedstring').html(text_completed + '');
    $('#sms_count').html(smscounts + '');
});

这应该在逻辑上实现您所说的:

    ...
    if(text_length <= 152) {
        var smscounts =+ parseInt(smscounts)+1;
    } else if (text_length <= 304) {
      //do logic
    } else { // it's > 304
      //do logic
    }
    ...

您想要这个

smscounts = Math.ceil(text_length / 152);

Math.ceil将四舍五入到最接近的整数。由于JavaScript的划分有点不稳定,您可能不得不这样做,而不是

smscounts = Math.floor(text_length / 152) + 1;

这是有效的:

var sms=152,text_max=3*sms; // good idea from caliburn, thanx ;-)
$(document).on("keyup","#Message", function() {
  var text_length = $('#Message').val().length;
  $('#leftstring').html((text_max - text_length) + '');
  $('#usedstring').html((text_length % sms) + '');
  $('#sms_count').html(Math.ceil(text_length / sms) + '');
});

请参见此处:http://jsfiddle.net/fkgpwhb5/