Używam metody, aby istotnie wykonać zastąpienie w ciągu.

function replaceAll(srcString, target, newContent){
  while (srcString.indexOf(target) != -1)
  srcString = srcString.replace(target,newContent);
  return srcString;
}

Ale to nie działa dla tekstu docelowego, który chcę, głównie dlatego, że nie mogę wymyślić, jak prawidłowo pisać ten tekst: Co chcę usunąć, dosłownie, "\n" (w zestawie przecinek i Cytaty), więc co przekazać jako drugi param, aby sprawić, że działa prawidłowo?

Z góry dziękuję.

0
Jorge Antonio Díaz-Benito 7 sierpień 2012, 17:04

3 odpowiedzi

Najlepsza odpowiedź

Musisz uciec od cytatów, jeśli używasz podwójnych cytatów dla pierwszego argumentu do replace

'some text "\n", more text'.replace("\"\n\",", 'new content');

Lub możesz to zrobić

'some text "\n", more text'.replace('"\n",', 'new content');

Uwaga W drugim przykładzie, pierwszy argument zastępujący wykorzystuje pojedyncze cytaty, aby oznaczyć ciąg, więc nie musisz uciec z podwójnych cytatów.

Wreszcie, jeszcze jedna opcja jest użycie regexa w wywołaniu replace

'some text "\n", more text "\n",'.replace(/"\n",/g, 'new content');

"G" na końcu sprawia, że zastępuje wszystkie (globalne).

7
hvgotcodes 7 sierpień 2012, 15:15

Aby usunąć "\n", po prostu użyj String.replace:

srcString.replace(/"\n"[,]/g, "")

Możesz zastąpić przy użyciu wyrażenia regularnego /"\n"[,]/g

4
Austin 7 sierpień 2012, 13:13

Nie ma potrzeby takiej funkcji. Funkcja Wymień ma dodatkowy parametr g, który zastępuje wszystkie zdarzenia zamiast pierwszego:

'sometext\nanothertext'.replace(/\n/g,'');
2
rsplak 7 sierpień 2012, 13:07