Jump to content
Sign in to follow this  
Iczer

Translate REGEXP from AutoIt to JavaScript

Recommended Posts

Iczer

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?

Share this post


Link to post
Share on other sites
Bowmore

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

  • Like 1

"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

Share this post


Link to post
Share on other sites
Bowmore

Try this

 

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

 

  • Like 1

"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

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.