Jak używać dopasowanych zmiennych we wzorcu w ciągu zastępczym?JavaScript String Replace - Jak używać dopasowanych zmiennych w ciągu zastępującym?
var regexp = new RegExp('needle', 'ig');
str.replace(regexp, '<span class="marked">//1</span>')
Jak używać dopasowanych zmiennych we wzorcu w ciągu zastępczym?JavaScript String Replace - Jak używać dopasowanych zmiennych w ciągu zastępującym?
var regexp = new RegExp('needle', 'ig');
str.replace(regexp, '<span class="marked">//1</span>')
spróbować
var regexp = new RegExp(something, 'ig');
str.replace(regexp, '<span class="marked">$&</span>')
Referencje:
działa .. ale dlaczego $ &? co, jeśli masz jakieś grupy we wzorze .. 1 $ itd. nie wydaje się działać – clarkk
Interesujące. Właściwie nie wiedziałem o zamiennikach '$ i', '$ '' i $ '. – OverZealous
@claekk: $ & reprezentuje dopasowany ciąg, $ n oznacza pasującą n-tą grupę. Jeśli nie korzystasz z dopasowywania grupowego, powinieneś być lepszy ($ 1 również powinno działać). Zobacz odwołanie, które dodałem – Eineki
Prawidłowe sposobem użycia odwołania wstecznego w JavaScript jest poprzez $1
... $9
.
Aby dokonać przykładową pracę:
var regexp = new RegExp(something, 'ig');
var result = str.replace(regexp, '<span class="marked">$1</span>');
Więcej informacji dostępnych jest tutaj: http://www.regular-expressions.info/javascript.html#replace
to tylko zastępuje vary 1 $ itd. – clarkk
Aby użyć liczbowych odnośników, będziesz musiał zawrzeć swoje wyrażenie regularne w nawiasach: '/ (needle) /'. W przeciwnym razie użyj '$ & ', które pokazuje Eineki. – OverZealous
ohh ... oczywiście! :) – clarkk
myślę trzeba mieć odczytu tego http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html –
@Peter Kelly: Nie jestem pewien, czy to jest poprawne - jego przykład nie odwołuje się do * parsowania * HTML, ale zamiast tego zajmuje się dodawaniem znaczników HTML wokół napisu. Które jest całkowicie poprawne zastosowanie dla Regex. – OverZealous
Skąd wiesz, że możesz użyć '// 1'? Dokładniej przeczytaj dokumentację na temat zamiany ciągu znaków, zwłaszcza część dotyczącą specjalnych zmiennych '$'. –