编写一个jquery插件来进行文本替换

时间:2009-11-01 22:26:27

标签: jquery jquery-plugins

让我们假设我想用'b'替换字符串中的所有'a'

'abc' - > 'BBC'

我想在各种字符串上运行它:

var str1= 'abc'
var str2= 'adf'
var str3= 'abvxvb'
var str4= 'ae54'

我正在尝试编写一个执行此操作的jquery插件。

所以我可以做str1.a_to_b();并获得所需的结果。 (实际上,使用另一种形式的语法也很好。)

我尝试的语法有问题:

jQuery.fn.a_to_b = function(expr) {
    return this.each(function() {
        this = this
        .replace(/a/ig, "b");
    });
};

感谢。

2 个答案:

答案 0 :(得分:4)

jQuery方法(附加到jQuery.fn)使用html元素,而不是字符串。你想要一个静态函数(你附加到jQuery本身)

jQuery.aToB = function(str) {
   return str.replace(/a/g, "b");
}

alert($.aToB("abc"))

或者你可以扩展String.prototype(不推荐,因为这是一个潜在的冲突源)

String.prototype.toB = function() {
   return this.replace(/a/g, "b");
}

alert("abc".toB())

答案 1 :(得分:0)

使用不同的sintax,也许你可以使用以下

jQuery.a_to_b = function(str) {
    return str.replace(/a/ig, "b");
};

然后你可以打电话

var str1= 'abc';

str1 = jQuery.a_to_b(str1);

你将把新值存储在str1