0

我正在尝试构建一个使用正则表达式替换字符的小插件。如果我在文本框中删除超过 1 个字符并模糊,它只会删除该字符。它不会“镜像”文本框中的值,并且看起来具有当前值。

(function ($) {
    $.fn.friendlyUrl = function (destinationID) {
        return this.blur(function () {
            var title = $(this).val();

            var url = title
                    .replace(/[åä]/g, "a")
                    .replace(/[ÅÄ]/g, "A")
                    .replace(/ö/g, "o")
                    .replace(/Ö/g, "O")
                    .replace(/[^a-zA-Z0-9]/g, "-")
                    .replace(/^-+/, "")
                    .replace(/-+$/, "")
                    .replace(/-+/g, "-")
                    .toLowerCase();

            $(destinationID).val(url);
        });
    };
})(jQuery);

我称之为:

$("#PageName").friendlyUrl("#Url");

这里可能有什么问题?

4

2 回答 2

1

我做了一些修改。

假设这是输入 url 的输入:

<input type="text" id="PageName"/>

插件代码:

(function ($) {
    $.fn.friendlyUrl = function () {
        return this.blur(function () {
            var title = $(this).val();

            var url = title
                    .replace(/[åä]/g, "a")
                    .replace(/[ÅÄ]/g, "A")
                    .replace(/ö/g, "o")
                    .replace(/Ö/g, "O")
                    .replace(/[^a-zA-Z0-9]/g, "-")
                    .replace(/^-+/g, "")
                    .replace(/-+$/g, "")
                    .replace(/-+/g, "-")
                    .toLowerCase();

            $(this).val(url);
        });
    };
})(jQuery);

和电话:

$(document).ready(function(){
    $("#PageName").friendlyUrl();
});

你真的不需要在这里传递 id

试试这个小提琴

于 2013-09-18T14:16:32.990 回答
1

我没有看到它url在任何地方使用所以在我看来你正在尝试这样做

$(destinationID).val(url);
于 2013-09-18T14:07:25.343 回答