JavaScript中{0}的含义是什么?

时间:2010-07-14 01:48:47

标签: javascript jquery jquery-validate

来自this answer的代码:

$.validator.addMethod('lessThanEqual', function(value, element, param) {
    return this.optional(element) || parseInt(value) <= parseInt($(param).val());
}, "The value {0} must be less than {1}");

{0}{1}的含义是什么? Javascript中定义那些参数替换的经验法则是什么?

因此,根据评论,我想进一步询问,以便在此处传递{0}和{1}。

我必须使用什么语法来验证函数lessThanEqual。

谢谢

4 个答案:

答案 0 :(得分:7)

没有“特殊”含义,它们只是验证器插件在显示消息时替换的标记,数字地指代规则的参数。

具体来说,这是在插件中发生的:

message = jQuery.format(message.replace(theregex, '{$1}'), rule.parameters);

因此{0}引用第一个参数,{1}引用第二个参数,依此类推。这是格式函数as it is in jQuery.validate 1.7

$.validator.format = function(source, params) {
  if ( arguments.length == 1 ) 
    return function() {
      var args = $.makeArray(arguments);
      args.unshift(source);
      return $.validator.format.apply( this, args );
    };
  if ( arguments.length > 2 && params.constructor != Array  ) {
    params = $.makeArray(arguments).slice(1);
  }
  if ( params.constructor != Array ) {
    params = [ params ];
  }
  $.each(params, function(i, n) {
    source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
  });
  return source;
};

答案 1 :(得分:1)

我认为这是验证器插件特定的模板语法,用于将{0}绑定到实际值,将{1}绑定到“所需”值。

答案 2 :(得分:1)

他们是占位符。在使用验证器的代码中,{0}和{1}被实际值替换。

答案 3 :(得分:1)

它们没有特殊含义,但它们用作格式占位符,例如:

function format(str/*, args*/) {
  var args = Array.prototype.slice.call(arguments, 1);
  return str.replace(/{(\d+)}/g, function (m, i) {
    return args[i];
  });
}

format("{0} {1}!!", "Hello", "world"); // "Hello world!!"