replace - Javascript ha un metodo per sostituire parte di una stringa senza creare una nuova stringa?




op jscript (4)

var str = "This is a string";
var thing = str.replace("string","thing");

console.log( str )
>> "This is a string" 

console.log( thing )
>> "This is a thing" 

C'è un altro metodo che posso usare, oltre a sostituire, che cambierà la stringa in posizione senza darmi un nuovo oggetto stringa?


Answers

Non che io sappia, tuttavia se il motivo per cui vuoi farlo è solo per mantenere pulito il tuo codice, puoi semplicemente assegnare la nuova stringa alla vecchia variabile:

var string = "This is a string";
string = string.replace("string", "thing");

Ovviamente questo renderà il codice un po 'più pulito e creerà ancora una nuova stringa.


C'è una ragione per cui le stringhe sono immutabili. Poiché Javascript utilizza la tecnica di call-by-sharing, la stringa mutabile sarebbe un problema in questo caso:

function thinger(str) {
    return str.replace("string", "thing");
}

var str = "This is a str";
var thing = thinger(str);

In questa situazione si desidera che la stringa venga passata per valore, ma non lo è. Se str fosse mutabile, thinger cambierebbe str, sarebbe un effetto davvero strano.


No, le stringhe in JavaScript sono immutabili.


Non hai bisogno di caratteri jolly nella REPLACE - trova solo la stringa che inserisci per il secondo argomento, quindi il seguente dovrebbe funzionare:

UPDATE dbo.xxx
SET Value = REPLACE(Value, '123\', '')
WHERE ID <=4

(Ho anche aggiunto la \ nella sostituzione come presumo che non sia necessario)





javascript string