2

ここでの回答を例として使用しましたが、次のように書きたいと思います。value.stringToSlug()

だから私はこれに変更しました:

// String to slug
String.prototype.stringToSlug = function(str) {
      str = str.replace(/^\s+|\s+$/g, ''); // trim
      str = str.toLowerCase();
      str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
               .replace(/\s+/g, '-') // collapse whitespace and replace by -
               .replace(/-+/g, '-'); // collapse dashes
      return str;
};

次のように文字列を渡すと機能します。

var value = $(this).val();
value.stringToSlug(value);
4

1 に答える 1

13

thisプロトタイプを変更する場合は、オブジェクト自体を参照するという事実を利用できます。この場合、メソッドを呼び出している文字列を指します。

String.prototype.stringToSlug = function() { // <-- removed the argument
    var str = this; // <-- added this statement

      str = str.replace(/^\s+|\s+$/g, ''); // trim
      str = str.toLowerCase();
      str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
               .replace(/\s+/g, '-') // collapse whitespace and replace by -
               .replace(/-+/g, '-'); // collapse dashes
      return str;
};

次に、次のように呼び出します。

$(this).val().stringToSlug();
于 2012-10-12T14:32:55.290 に答える