0

我正在编写一个位代码代码,它将根据用户输入计算个性化产品的价格。在这种情况下,他们可以选择出现在成品中的消息(“生日快乐”或“周年快乐”或类似的东西)。

价格应根据消息中的字符数计算。因此,每个字符的价格应该增加 4 英镑,但每个空格只能增加 2 英镑。

我在让我的代码遍历每个字符以确定它应该收费多少时遇到问题。有什么想法我哪里出错了吗?

如果我的解释不够清楚,这可能会有所帮助。 http://jsfiddle.net/6QhAz/1/

代码:

$(document).ready(function () {
  jQuery("#phrase").keyup(function () {     
    var length = this.value.length; 
    var price;
    var message =jQuery("#phrase").val;
    for ( var i=0; i > length; i++) {
      if (this.value === " " ) {
        price + 1.50;                       
      } else {
        price + 2.50;
      };
    };

    jQuery("#price").html('Price: £'+price);
  });
});
4

3 回答 3

2

而不是遍历字符,只需使用正则表达式来计算它们:

$(document).ready(function()  {
    $("#phrase").keyup(function() {      
        var value = $(this).val();
        var spaces = (value.match(/\s/g) || []).length;

        var price = 1.5 * spaces + 2.5 * (value.length - spaces);

        $("#price").html('Price: £' + price);
    });
});​

演示:http: //jsfiddle.net/6QhAz/6/

于 2012-08-22T20:32:08.040 回答
1

您可以使用字符串的方法逐个字母地遍历charAt字符串:

var name_str = "hello world!";
for (var i=0; i < name_str.length; i++) {
    alert(name_str.charAt(i));
}

现场示例:http: //jsfiddle.net/dM7Vd/

于 2012-08-22T20:32:00.113 回答
1
 $("#phrase").keyup( function () {    
            var message =$("#phrase").val();        
            var length = message.length; 
            var price = 0;

            for ( var i=0; i < length; i++) {
                if (message.charAt(i) == " " ) {
                    price += 1.50;                       
                } else {
                    price += 2.50;
                };

            };

            $("#price").html('Price: &pound;'+price);

    });
于 2012-08-22T20:36:00.677 回答