2011-10-18 118 views
0

這個腳本如下JavaScript正則表達式的情況下

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> 

返回:http://website/abc/d/e/10_.000/DispForm.aspx?ID=10

我怎樣才能使它適用於1_.000,10_.000,100_.000,1000_.000等...?

這裏是的jsfiddle http://jsfiddle.net/atoswchataigner/5uh8N/

回答

2

測試\/\/\d後面添加一個加號。 \/\/\d+表示:「相吻合,連續的數字//後:

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

而非目前正則表達式,你也可以使用:

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

.prop方法返回一個解析的網址,而不是設定的屬性。 /(?:)\/\//g正則表達式用單斜槓替代所有雙斜槓的出現,但前面有:(後綴爲協議:http://)的斜槓除外。

1

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

+將匹配一個或多個數字。

+0

早先提出的相同答案:) – user472285

+0

是的,沒有看到它! –

相關問題