'ABC neden'.('B', '$`') yerine AAC verir
Neden bu kodu A$`C
beklenen yerine AAC
parmak izi var mı?
console.log('ABC'.replace('B', '$`'));
==>
AAC
Ve nasıl bu beklenen sonucu vermesi için?
CEVAP
console.log('ABC'.replace('B', "$$`"));
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
Ekle $ pass.$$,$`:
Ekler eşleşen alt dizeden önce gelen dize bölümü.
Diğer desenleri:
Keman:
Ayrıca, yukarıda gönderdiniz başvuru linke bile daha fazla şeyler vardır. Eğer hala herhangi bir sorun var mı, yoksa belki bir cevap bulabilir şüphe varsa, ekran görüntüsü yukarıdaki link cevap başında yayınlanan alınmıştır.
DÜZENLEME:
Bence söylemeye değerherhangi birdesen yukarıdaki uyuşmuyorgerek kaçtı . yok $
kaçmış olması gerekmez , bu yüzden, aynı hikaye $AAA
ile olur.
Açıklamalarda, yukarıda bir kullanıcı sordu bu yüzden mi bu "kaçış" $ dolar: rağmen değilim gerçekten emin, bence de değer işaret, ne demiştik yukarıdageçersiz desen yorumlanır olmayacakdolayısıyla bence (ve şüpheli, bu noktada) $ $ çok özel bir durum, çünkü kapsadığı durumlarda ihtiyacın yerine maçı ile bir dolar işareti, ardından bir "desen-kilitli" karakteri gibi tick ( ` ) örnek olarak (ya da gerçekten ve başka bir).
Başka bir durumda olsa da, dolar işaretigerek kaçtı . yok dolayısıyla muhtemelen mantıklı verdiler oluşturmak için böyle bir özel kural, başka olurdun gerekli kaçış $ her yerde (ve sanırım bu oldu etkisi üzerinde herhangi bir dize nesne, çünkü bu ifade bile var a = "hello, $ hey this one is a dollar";
sen gerekli kaçış $
).
Hala ilgileniyorsanız ve daha fazla okumak istiyorsanız, lütfen aynı zamanda bu kontrol edin:
http://www.regular-expressions.info/javascript.html#replace
Daha fazla vaka ile keman:
Neden bu iki kez (1927) garip bir sonu...
Neden nesne yerine bir işaretçi kendis...
Python katılın, neden dize.liste yerin...
Neden px yerine em?...
Neden İfade<İşlev<T> kullanırs...