2013-07-13 4 views
3

JavaScript에서 특정 정규 표현식과 일치하는 부분 문자열을 바꾸는 좋은 방법이 있습니까? 단지 문자열 "adebfd""gbd" 현재 위치에서 반전 된 경우 /[a-g]+/ 같은 정규식과 "sgsadebfdzgbd" 같은 문자열에 대한 예를 들어 일치하는 부분 문자열을 뒤집기

"sgsdfbedadbg"를 얻을 수 있습니다.

답변

2
replace에 대한

를 사용하여 사용자 정의 기능 :

your_string.replace(/([a-g]+)/g, function(all, word) { 
    return word.split("").reverse().join(""); 
}); 

예 :

> "sgsadebfdzgbd".replace(/([a-g]+)/g, function(all, word) { 
    return word.split("").reverse().join(""); 
}); 
"sgsdfbedazdbg" 

또한 (제 생각에)이 이하로 사용 할 수 있지만, 명확하지 버전 :

your_string.replace(/[a-g]+/g, function(word) { 
    return word.split("").reverse().join(""); 
}); 
1

정규 표현식을 사용하면이 작업을 수행 할 수 없습니다.

까다로운 비트는 임의의 긴 문자열에 대해 문자열 반전을 수행하고 있습니다. 정규 표현식은 유한 오토 마톤의 인식 능력과 동일합니다. 이러한 (의미에서) 고정 된 한정된 크기의 스토리지 있습니다. 그러나 임의의 긴 문자열의 역전을 처리하려면 스택과 같은 임의의 항목을 저장할 수있는 저장소가 필요합니다.

다른 답변에서 사용 된 반대 기능이 표시되는 이유는 그 때문입니다.

관련 문제