用于从网页中删除.htm的javascript示例

时间:2013-07-01 16:17:28

标签: javascript html regex arrays match

我有一些客户端Javascript,它使用数组和.push方法添加文件大小和.doc,pdf和csv文件的图标。我想修改代码以从页面网址中删除.htm。这是我在一个名为getAnchorTags的函数中的代码:

splitAndJoinArray.push([matches[a],{orig:matches[a],modified:"<img class ='MIME_content' src='" + getMIMEImage(href)+ "' alt='" + getMIMEAlt(href) + "'>" + matches[a] + " (" + getFileType(href) + getFileSize(href) + "kb)"}]);

使用.push将项添加到数组末尾可以正常工作。我尝试过使用.replace从所有页面网址中删除.htm并尝试失败:

splitAndJoinArray.replace([/.htm/g,{orig:matches2[a],modified:""}]); 

匹配和匹配2使用一些正则表达式来获取所需的文件扩展名:

var matches = str.match( /<a[\s]+[^>]*?href[\s]?=[\s\"\']*([^"]*?\.(pdf|ppt|csv|xls|doc))[\"\']*.*?>([^<]+|.*?)?/gi);
var matches2 = str.match( /<a[\s]+[^>]*?href[\s]?=[\s\"\']*([^"]*?\.(htm))[\"\']*.*?>([^<]+|.*?)?/gi);

matches2正常工作并返回页面上的htm链接列表。因为这是我继承的东西,我的JavaScript实际上并不多,我不知道如何改变

splitAndJoinArray.replace([/.htm/g,{orig:matches2[a],modified:""}]); 

我知道剥离.htm是不正确的。我可以添加更多代码,如果这会有所帮助。

1 个答案:

答案 0 :(得分:0)

mplungjan指出我正确的方向。以下从页面源中删除.htm:

splitAndJoinArray.push([matches2[a],{orig:matches2[a],modified:matches2[a].replace(".htm","")}]);