此脚本
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/
的测试答案 0 :(得分:2)
在\/\/\d
之后添加加号。 \/\/\d+
表示:“匹配//
之后的所有连续数字:
/\/\/(\d+)_.(\d{3})\//
您可以使用:
代替当前的RegExpjQuery(this).attr('href',jQuery(this).prop('href').replace(/(?!:)\/\//g,'/'));
.prop
方法返回已解析的URL,而不是set属性。 /(?:)\/\//g
正则表达式用一个斜杠替换所有双斜杠的出现,除了前面有:
的斜杠(后缀为协议:http://
)。
答案 1 :(得分:1)
/\/\/(\d+)_.(\d{3})\//,'/'
+
将匹配一个或多个数字。