参数return_value包含
<textarea>{"id":43,"description":"","item_id":28,"callback":"addNewAttachment","filename":"foo.jpg",,"type":"posts","ext":"jpg","size":145}</textarea>
下一段代码删除了 Firefox、Chrome 中的 textarea 标签,因此可以在 arr[1] 中访问内容。在 IE 中调用 alert("Failure")。
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 来自 ajax 调用。我使用 JQuery。
测试
这也不起作用:
var re = new RegExp (/<textarea>(.+)<\/textarea>/);
解决方案
问题是 IE 将 textarea 字符串转为大写,而 firefox 将其转为小写。
下一个正则表达式就解决了。
var re = new RegExp ('<textarea>(.+)</textarea)>','i');
最佳答案
这是区分大小写的问题吗? new RegExp(..., "i")
可能有帮助?
关于Javascript RegExp 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1237595/