2009-02-04 5 views
7

Я хотел бы делать сделать следующее в JavaScript (псевдо-код):поиск Javascript и заменить

myString.replace(/mypattern/g, f(currentMatch)); 

то есть, заменить строку не является фиксированным, но функция текущего матча.

ответ

6

MDC утверждает, что вы можете сделать только что:

function styleHyphenFormat(propertyName) 
{ 
    function upperToHyphenLower(match) 
    { 
    return '-' + match.toLowerCase(); 
    } 
    return propertyName.replace(/[A-Z]/, upperToHyphenLower); 
} 

Или более обобщенно:

myString.replace(/mypattern/g, function(match){ 
    return "Some function of match"; 
}); 
+0

MDC был моим первым выбором, но он упал, когда я попытался его увидеть. Другие сайты, которые я нашел, имели только простые примеры замены. – Slartibartfast

+1

Это было представлено в JavaScript 1.3. Старые JS-документы из Netscape 4 могут быть полезны для проверки конструкций JavaScript, потому что почти все из них представляет собой старую школу JS с «DOM Level 0», которая будет поддерживаться повсюду. см., например. Зеркало Солнца на http://docs.sun.com/source/816-6408-10/contents.htm – bobince