Sostituire l’ennesima istanza di una corrispondenza regolare in Javascript

Sto provando a scrivere una funzione regex che identificherà e sostituirà una singola istanza di una corrispondenza all’interno di una stringa senza influenzare le altre istanze. Ad esempio, ho questa stringa:

12||34||56 

Voglio sostituire il secondo set di pipe con la e commerciale per ottenere questa stringa:

 12||34&&56 

La funzione regex deve essere in grado di gestire x quantità di pipe e permettermi di sostituire l’ennesima serie di pipe, quindi potrei usare la stessa funzione per fare queste sostituzioni:

 23||45||45||56||67 -> 23&&45||45||56||67 23||34||98||87 -> 23||34||98&&87 

So che potrei semplicemente dividere / sostituire / concat la stringa alle pipe, e so anche che posso abbinare su /\|\|/ e scorrere l’array risultante, ma sono interessato a sapere se è ansible scrivi una singola espressione che può farlo. Si noti che questo sarebbe per Javascript, quindi è ansible generare una regex in fase di esecuzione usando eval() , ma non è ansible utilizzare alcuna istruzione di regex specifica Perl.