A couple of things:

- // quoting shouldn't be further quoted (use /foo/ rather than '/foo/')
- Captures are referenced with $, not \ (use $1 rather than \1)

As for your requirement, this might be a simpler approach:

  str.replace(/_([^\d]|$)/g, '%20$1')

i.e., replace any underscore followed by a non-digit (or occurring at
the end of string) with %20.

On Sun, Nov 19, 2017 at 11:04 AM, jgill <[email protected]> wrote:
> I am trying to replace all instances of an underscore with %20 except when
> the underscore if followed by a digit using Javascript. The replacement
> works fine in BBEdit
>
> var str='Test_One_Two_Three_101117a.JPG';
> var pattern='/(.*?)_(\d\d\d\d\d\d\w.JPG)/';
> var r=str.replace(pattern,'\1%20\2');
> document.write(r);
>
>
> What is wrong with this?
>
> --
> This is the BBEdit Talk public discussion group. If you have a
> feature request or would like to report a problem, please email
> "[email protected]" rather than posting to the group.
> Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>
> ---
> You received this message because you are subscribed to the Google Groups
> "BBEdit Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/bbedit.

-- 
This is the BBEdit Talk public discussion group. If you have a 
feature request or would like to report a problem, please email
"[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/bbedit.

Reply via email to