javascript正则表达式案例

时间:2011-10-18 08:37:47

标签: javascript regex

此脚本

 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 个答案:

答案 0 :(得分:2)

\/\/\d之后添加加号。 \/\/\d+表示:“匹配//之后的所有连续数字:

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

您可以使用:

代替当前的RegExp
jQuery(this).attr('href',jQuery(this).prop('href').replace(/(?!:)\/\//g,'/'));

.prop方法返回已解析的URL,而不是set属性。 /(?:)\/\//g正则表达式用一个斜杠替换所有双斜杠的出现,除了前面有:的斜杠(后缀为协议:http://)。

答案 1 :(得分:1)

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

+将匹配一个或多个数字。