2011-03-16 3 views
0

자바 스크립트에서 Regex를 사용하여 버튼을 교체해야하며이를 수행하는 방법이 궁금합니다. 단추의 src를 잡는 방법을 알고 있지만 토글 할 수있는 두 가지 옵션을 기반으로 파일 이름을 가져 와서 "-next"텍스트를 추가하거나 "-next"를 제거해야합니다. 여기에 두 개의 서로 다른 파일 이름은 다음과 같습니다파일 이름을 자바 스크립트에서 정규식으로 바꾸기

/images/button.png 
/images/button-next.png 

어떤 도움을 주시면 감사하겠습니다. 당신이 필요로 같은 날에 보이는

+0

여기에 CSS를 사용하고 싶지만 완전한 예제가없는 것처럼 들릴 수도 있습니다. a) 당신이 가진 텍스트와 b) 두 인스턴스 모두에서 원하는 텍스트에 대한보다 현실적인 예를 게시 할 수 있습니까? –

답변

2

최종 점 전에 -next를 삽입하려면, 당신은

result = subject.replace(/(?=\.[^.]+$)/g, "-next"); 

-next 전에 제거 할 수 최종 점 :

result = subject.replace(/-next(?=\.[^.]+$)/g, ""); 
0

매우 간단하다 :

if (addingNext) { 
    return str.replace(/\.png$/i, '-next.png'); 
} else { 
    return str.replace(/-next\.png$/i, '.png'); 
} 
0
if (url.match(/-next/)) 
    newUrl = url.replace("-next.", "."); 
else newUrl = url.replace(".", "-next."); 
0
var str = "/images/button.png"; 
    var idx = str.lastIndexOf('.'); 
    var replValue = "-next"; 
    var newStr = str.substring(0,idx) + replValue + 
str.substring(idx); 

아마도 더 효율적인 방법이 있지만 효과가 있습니다. 당신은 또한 아니오에 대한 테스트를 원할 것입니다. 녹이다. 정규식을 사용할 수도 있지만 더 명확합니다.

0
function toggle(img){ 
    if(img.src.match(/-next\.[^\.]+$/)){ 
     img.src=img.src.replace(/\.[^\.]+$/,'-next$&'); 
     return true; 
    } 
    img.src=img.src.replace(/-next(\.[^\.]+)$/,'$1'); 
    return true; 
} 

모든 파일 확장자에서 작동합니다.

0
var src1 = "/images/button.png"; 
var src2 = "/images/button-next.png"; 

src1 = src1.replace(/\.(\w+)/, "-next.$1"); 
src2 = src2.replace("-next", ""); 
관련 문제