我有一些客户端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是不正确的。我可以添加更多代码,如果这会有所帮助。
答案 0 :(得分:0)
splitAndJoinArray.push([matches2[a],{orig:matches2[a],modified:matches2[a].replace(".htm","")}]);