Jump to content

Recommended Posts

Posted

How it should be done?

Autoit regexp:

$sHeader = "attachment; filename*=UTF-8''cURL.au3"

$sFilename = StringRegExpReplace($sHeader, "(?i)(\A.*?filename)(\*?\=.*?)([^']+)$","$3")

JavaScript:

$sJavascript &= 'var responseHeaders = request.getResponseHeader("Content-Disposition");'
$sJavascript &= 'var expr = new RegExp(".*=.+?"(.+)");'
$sJavascript &= 'var fileName = responseHeaders.replace(expr,"$3");'

it working well in most cases, but if filename encoded as defined by RFC 2231, JavaScript version give wrong result and this

$sJavascript &= 'var expr = new RegExp("(\\A.*?filename)(\\*?\\=.*?)([^\\x27\\x60]+)$");'
$sJavascript &= 'var fileName = responseHeaders.replace(expr,"$3");'

also fail.

How i can correctly reproduce auto-it regexp in  JavaScript?

Posted

Could you please specify which browsers you use as the implementations have slight differences

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Posted

Try this

 

var expr = /(^.*?filename)(\*?\=.*?)([^']+)$/mg;
fileName = responseHeaders.replace(expr, "$3");

 

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...