2011-10-18 5 views
0

에 대한자바 스크립트 정규 표현식의 경우

jQuery(".lireArticleAction a").each(function(){ 
       jQuery(this).attr('href',jQuery(this).attr('href').replace(/\/\/(\d)_.(\d{3})\//,'/')); 
     }) 

작품 아래에이 스크립트 :

<span class="lireArticleAction" id="lireArticle"> 
<a href="website/abc/d/e/1_.000/DispForm.aspx?ID=1" class="">read</a> 
     </span> 

반환 : http://website/abc/d/e/DispForm.aspx?ID=1

하지만하지 않는 :

<span class="lireArticleAction" id="lireArticle"> 
<a href="website/abc/d/e/10_.000/DispForm.aspx?ID=10" class="">read</a> 
     </span> 

반환,494,732 10

어떻게하면 1_.000, 10_.000, 100_.000, 1000_.000 등으로 작동시킬 수 있습니까? 여기

\/\/\d 후 더하기 기호를 추가 jsfiddle http://jsfiddle.net/atoswchataigner/5uh8N/

답변

2

에 테스트입니다. \/\/\d+ 의미 : "// 후 모든 연속적인 숫자와 일치하는 대신 현재 정규식의

/\/\/(\d+)_.(\d{3})\// 

은 또한 사용할 수 있습니다

jQuery(this).attr('href',jQuery(this).prop('href').replace(/(?!:)\/\//g,'/')); 

.prop 방법은 오히려 세트 속성보다는 구문 분석 URL을 반환합니다. /(?:)\/\//g 정규 표현식은 모든 슬래시를 단일 슬래시로 바꿉니다 (슬래시 앞에는 : (프로토콜 접미사 : http://)가 붙습니다).

1

/\/\/(\d+)_.(\d{3})\//,'/'

+은 하나 이상의 숫자와 일치합니다.

+0

이전에 제안 된 동일한 답변 : – user472285

+0

예, 보지 못했습니다! –