2011-03-15 2 views
1

내가 이미지 SRC의 일치하는 부분을 노력하고 정규식 {수}, 예 것 _1 그래서 _1에게매칭 _ 자바 스크립트

function ClickImgOf(filename, itemid){ 
    var re = new RegExp("(.+)_[0-9])\\.(gif|jpg|jpg|ashx|png)", "g"); 
    return filename.replace(re, "$1_"+itemid+".$2"); 
} 

일치하도록 노력하고 내가 가지고있는 기능입니다있어 _6

대답 ..

나는 그것이 0-9와 일치한다는 것을 안다. 그러나 나는 일할 무언가를 얻으 려하고 있었고 심지어 그렇게하지 않았다.

나는 지금 당장 Regex에 대해 많이 알지 못한다.

답변

3

귀하의 패턴에 일치하지 않는 ) 괄호가 있습니다. 그게 너를 때리는거야? 그렇지 않으면 괜찮아 보입니다. 문제가 2 자리 이상의 숫자와 일치 할 수 있다면 [0-9]+을 시도하십시오.

다음

(.+_)[0-9]+(\.(?:gif|jpg|jpg|ashx|png))

당신이 단지 수 있습니다 :

또한
return filename.replace(re, "$1" + itemid + "$2"); 

, 다운로드 및이 설치 :

function ClickImgOf(filename, itemid){ 
    var re = new RegExp("(.+)_([0-9]+)\\.(gif|jpg|jpg|ashx|png)", "g"); 
    return filename.replace(re, "$1_"+itemid+".$3"); 
} 
+0

woops! 첫 번째 누락 아니에요) 내 머리카락을 끌어 내게 이끌었습니다! 감사합니다 –

1

이 시도 정기적으로 작업 할 때 http://www.ultrapico.com/ExpressoDownload.htm

그것은 귀중한입니다 표현.

+0

http://www.ultrapico.com/ExpressoDownload.htm 꽤 멋진 감사합니다. –

+0

본 적이 있습니까?> http://regexhero.net/tester/? 그것도 꽤 좋은 젠장 정규식 작업. –

+0

네, 그거 좋습니다! 기본적으로 당신은 단지 몇 가지 설명의 정규식 테스터가 필요합니다, 당신이 찾은 것 같아 그것은 많은 시간을 절약 할 수 있습니다! :) – Town

1

regex 객체를 사용하여 정규 표현식을 만들 필요가 없습니다. 리터럴을 사용하는 것이 더 쉽고 더 효율적입니다.

function ClickImgOf(filename, itemid) { 
    return filename.replace(/_\d+\.(gif|jpg|jpg|ashx|png)$/g, '_'+itemid+'.$2'); 
} 
+0

고마워, 고마워! –