Anna_MediaGirl
Anna_MediaGirl

Reputation: 1120

jQuery String Replace in TextArea

I'm trying to do a string replace in a textarea after the user has entered their content and nothing I've tried is working. Any help would be greatly appreciated. This is where I am:

<textarea id="field_id_29"></textarea>

$("#field_id_29").bind("change keyup input",function(){
     var text = $("#field_id_29").val();
     text = text.replace(/source/g,"www")
     $("#field_id_29").val(text);
});

I need to replace www-source with www.

jsFiddle is here: http://jsfiddle.net/6RNY2/

Upvotes: 1

Views: 5136

Answers (4)

Adam Wiggall
Adam Wiggall

Reputation: 393

Try this,

$("#field_id_29").change(function(){
    var text = $(this).val();
    var regexp = /www-source/gi;
    if ( text.match(regexp) ){      
        text = text.replace(/www-source/g,"www");
        return $(this).val(text);
    }
    return false;
});

When the field changes we grab the value, compare if against a regular expression and if we have a match we replace the text and we are done, otherwise we just return.

Upvotes: 11

Adil
Adil

Reputation: 148110

Try this,

Live Demo

[$("#field_id_29").bind("keyup", function() {
    var text = $(this).val();
    text = text.replace(/source/g, "www")
    $(this).val(text);
});​

Upvotes: 2

andrux
andrux

Reputation: 2922

Your code works, you just need to use jQuery instead of Mootools in your jsfiddle, probably also just use the change event so that it replaces the text only after the textarea has been updated

Upvotes: 1

Anoop
Anoop

Reputation: 23208

jsfiddle

        $("#field_id_29").bind("change keyup input",function(){    
            this.value= this.value.replace(/www-source/g,"www");                 
        });
​

Note: inside function this is reference of textarea so you directly use this.value instead of accessing textarea value using id.

Upvotes: 2

Related Questions