2

我有一个var baseURL我知道的是:baseURL = c:\whatever\mybasedir\
我有一个可能包含以下内容的 HTML 源代码:

<IMG alt="foo" src="file://c:\whatever\mybasedir\root\foo\bla.gif">
or/and:
<IMG alt="foo" src="file://c:/whatever/mybasedir/root/foo/bla.gif">
or/and:
<IMG src="c:\whatever\mybasedir\root\foo\bla.gif">
or/and: 
<IMG src="c:\whatever\mybasedir/root/foo/bla.gif">

我需要替换所有 src 标记,以便结果路径是 Unix 风格,相对于baseURL

<IMG src="root/foo/bla.gif">

或者如果有一个 alt 属性(或其他属性的顺序可能会有所不同):

<IMG alt="foo" src="root/foo/bla.gif">

我该如何搭配<IMG * src="*" *>?有什么正则表达式(或其他方法)可以在这里提供帮助的想法吗?

(我不能使用 DOM 来完成这项工作,因为 IE8/9 DOM 首先导致了这种情况 - 自动添加<base href>到所有相关的 src 标签)

4

2 回答 2

4

你可以做

正则表达式:(<IMG[^>]*)src="[^"]*c:.whatever.mybasedir.

用。。。来代替:$1src="

于 2013-01-14T10:54:49.880 回答
3

代替(<IMG.*src=")(.*[/\\])(root[/\\].*?".*>)

$1$3

编辑

希望这会奏效

代替(<IMG.*src=")(.*[/\\]mybasedir[/\\])(root)(([/\\][^/\\]+)*)(".*>)

$1$3$4$6

于 2013-01-14T11:00:32.833 回答