Diciamo che ho una stringa:Sostituzione di un intero (n) con un carattere ripetuto n volte
"__3_"
... che vorrei trasformare in:
"__###_"
fondamentalmente la sostituzione di un intero con ripetute occorrenze di #
equivalenti al valore intero. Come posso raggiungere questo obiettivo?
Capisco che backreference possono essere utilizzati con str.replace()
var str = '__3_'
str.replace(/[0-9]/g, 'x$1x'))
> '__x3x_'
e che possiamo utilizzare str.repeat(n)
per ripetere sequenze di stringa n
volte.
Ma come è possibile utilizzare il backreference da .replace()
come argomento di .repeat()
? Ad esempio, questa non funziona:
str.replace(/([0-9])/g,"#".repeat("$1"))
'/ (x) \ 1 /' corrisponde a "xx" dove '\ 1' è un riferimento all'indietro. "$ 1" non è un riferimento posteriore, è un modello di sostituzione speciale. – leaf