Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript RegExp does not work in IE

The parameter return_value contains

   <textarea>{"id":43,"description":"","item_id":28,"callback":"addNewAttachment","filename":"foo.jpg",,"type":"posts","ext":"jpg","size":145}</textarea>

The next code removes the textarea tags in Firefox, Chrome, so the content can be accessed in arr[1]. In IE alert("Failure") is called.

function addAttachment(returned_value) {
    var re = new RegExp ("<textarea>(.+)</textarea>");      
    var arr = re.exec(returned_value);
    if(arr != null && arr.length > 1) {
        var json = eval('(' + arr[1] +')');
    } else {
        alert("Failure");           
    }   
    window[json.callback](json);
}

returned_value comes from an ajax call. I use JQuery.

TEST

This does not work either:

var re = new RegExp (/<textarea>(.+)<\/textarea>/);

SOLUTION

The problem was that IE was getting the textarea String uppercased while firefox was getting it lowercase.

The next regular expression solves it.

var re = new RegExp ('<textarea>(.+)</textarea)>','i');
like image 741
Sergio del Amo Avatar asked Feb 26 '26 04:02

Sergio del Amo


2 Answers

Is this a case-sensitive issue? new RegExp(..., "i") might help?

like image 65
searlea Avatar answered Feb 28 '26 17:02

searlea


Try using a regex literal:

var r = /<textarea>(.+)<\/textarea>/i;
like image 30
KooiInc Avatar answered Feb 28 '26 16:02

KooiInc