开发者

Writing a jquery plugin to do text replacement

Let's say hypothetically I want to replace all 'a' in a string with 'b'

'abc' -> 'bbc'

I want to run this on various strings:

var str1= 'abc'
var str2= 'adf'
开发者_如何学编程var str3= 'abvxvb'
var str4= 'ae54'

I'm trying to write a jquery plugin that does this.

So I can do str1.a_to_b(); and get the desired result. (Actually having the syntax in another form is fine too).

There's something wrong with my attempted syntax:

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

Thanks.


jQuery methods (attached to jQuery.fn) work with html elements, not strings. You want a static function (which you attach to jQuery itself)

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

alert($.aToB("abc"))

Alternatively you can extend String.prototype (not recommended, since this is a potential conflict source)

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

alert("abc".toB())


With a different sintax, maybe you can use the following

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

And after that you could call

var str1= 'abc';

str1 = jQuery.a_to_b(str1);

and you would have the new value stored in str1

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜