W poniższym ciągu
"This "is, "just, for", Test", ignore it. My name is "FirstName, LastName"."
Chcę zastąpić wszystkie przecinki (,) tylko w cudzysłowach („”) znakiem ###.
Na razie znalazłem tylko pasujący wzorzec dla („”), ale muszę zbudować wyrażenie regularne, aby zastąpić przecinki.
/".*?"/g
Czy mógłbyś mi pomóc? Z góry dziękuję ;)
Oczekiwany o / p:
This "is### "just### for"### Test", ignore it. My name is "FirstName### LastName".
Uwaga: to nie jest duplikat „Znajdź przecinek w cudzysłowach za pomocą wyrażenia regularnego i zamień na equiv HTML". Proszę zobaczyć moje oczekiwane o / p (Nawet ja chcę zastąpić przecinek w wewnętrznych podwójnych cudzysłowach).
Odpowiedzi:
1 dla odpowiedzi № 1Chwyć ciąg między cudzysłowami "
i podaj funkcję zastępczą jako drugi argument String.replace
aby wymienić wszystko ,
wewnątrz cytatów do ###
:
inputString.replace(/"([^"\]|\.)*"/g, function ($0) {
return $0.replace(/,/g, "###");
});
Możesz wkleić ten kod do konsoli w celu przetestowania:
"This "is, \"just, for\", Test", ignore it. My name is "FirstName, LastName".".replace(/"([^"\]|\.)*"/g, function ($0) {
return $0.replace(/,/g, "###");
});