Chcę zastąpić oświadczenie o następującej treści:
"(?)".replace("?", "$'")
Moje oczekiwanie jest:
($')
Ale wynik jest faktycznie:
())
Jak mogę poprawić mój kod?
Chcę zastąpić oświadczenie o następującej treści:
"(?)".replace("?", "$'")
Moje oczekiwanie jest:
($')
Ale wynik jest faktycznie:
())
Jak mogę poprawić mój kod?
Trzeba użyć $$'
jeśli chcesz zastąpić do $'
ponieważ $'
jest specjalny wzór zastępczą, która
Powoduje wstawienie fragmentu ciągu następującego po dopasowanym podciągu.
Wszystkie dostępne wzory są:
$$ wstawia "$".
$ &: Wstawia dopasowany podciąg.
$ `: wstawia część ciągu poprzedzającą dopasowany podciąg.
$ ': Wstawia część ciągu podążającego za dopasowanym podciąganiem.
$ n lub $ nn: gdzie n lub nn są cyframi dziesiętnymi, wstawiany jest n-rzędowy łańcuch podrzędny pod warunkiem, że pierwszym argumentem był obiekt RegExp.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace
Trzeba
"(?)".replace("?", "$$'")
$”jest specjalny wzór zastępcza (nserts część napisu, która poprzedza dopasowany podciąg.) I musi być ocalałem przy użyciu $.
Jak to zrobić bez sekwencji ucieczki
Jeśli nie chcesz zastąpić wszystkie swoje $ w ciągu zastępowania, można również zrobić coś
"(?)".replace("?", function() { return "$'" })
tj. za pomocą funkcji (która zwraca ciąg zastępczy - brak konieczności ucieczki) jako drugiego parametru.
wynik (wartości zwracanej) funkcja będzie stosowany jako zamiennik ciąg. . (Uwaga: wyżej wymienione specjalny wzory zamienne nie zastosowanie w tym przypadku)
'.replace ('poprzedza', 'następuje')'. – Xufox
Jeśli zamiennik jest zmienną, nie wiem, czy istnieje jakikolwiek znak $. Czy powinienem wymienić wszystkie $ $ $$ za każdy zamiennik? – vietean
Tak, powinieneś dokładnie to, czego próbujesz. Może być coś łatwiejszego. – potatopeelings
Jeśli zamiennik jest zmienną, nie wiem, czy istnieje jakikolwiek znak $. Czy powinienem wymienić wszystkie $ $ $$ za każdy zamiennik? – vietean
Jeśli chcesz użyć znaku '$' zamiast używać go jako znaku specjalnego, musisz użyć '$$' –
@vietean Nie jestem pewien, czy dobrze zrozumiałem twoje pytanie, ale gdy chcesz coś zastąpić _by_ znakiem dolara, używaj '$$' za każdym razem jako drugiego argumentu funkcji 'replace'. Tylko '$$' bezpiecznie tworzy pojedynczy '$ 'w ten sposób. – Xufox