Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式在IE 8、9和10中根本不起作用_Javascript_Regex_Internet Explorer_Replace - Fatal编程技术网

Javascript 正则表达式在IE 8、9和10中根本不起作用

Javascript 正则表达式在IE 8、9和10中根本不起作用,javascript,regex,internet-explorer,replace,Javascript,Regex,Internet Explorer,Replace,以下是我们要替换的文本: <A href="http://domain.com"><IMG src="https://domain.com/images/siteheader.jpg"></A> 使用javascript.replace,我们尝试使用以下内容将其替换为空白: .replace ("/<A href=\"http:\/\/domain.com\"><IMG src=\"https:\/\/domain.com\/image

以下是我们要替换的文本:

<A href="http://domain.com"><IMG src="https://domain.com/images/siteheader.jpg"></A>

使用javascript.replace,我们尝试使用以下内容将其替换为空白:

.replace ("/<A href=\"http:\/\/domain.com\"><IMG src=\"https:\/\/domain.com\/images\/siteheader.jpg\"><\/A>/i"," ");
.replace(“/它说它是有效的。有点难懂。IE做了一些不正常的事情吗?

您可以使用字符串(其字面形式类似于
”…
)或正则表达式(其字面形式类似于
/…/
)使用
replace
。您试图同时执行这两项操作。请删除引号:

.replace (/<A href="http:\/\/domain.com"><IMG src="https:\/\/domain.com\/images\/siteheader.jpg"><\/A>/i, " ");
.replace(//i,“”);
当您使用字符串时,它只是逐字匹配,不进行正则表达式处理


我还没有验证正则表达式的全部内容,只是删除了周围的
”,并删除了嵌入的
”前面的
\

正则表达式是文本,不应该在其周围加引号:

.replace(/your regex here/,'replacement')
也就是说,文本来自哪里?如果它来自
.innerHTML
,浏览器可能会返回一个与源代码中的字符串不同的字符串(例如,属性名称可以大写,或者属性本身交换。我相信旧版本的IE会去掉单字属性值的引号,这也会影响您的regex

简而言之,您不应为此使用正则表达式。您可以尝试以下方法:

var toRemove = document.querySelector("a[href='http://domain.com']"),
    parent = toRemove.parentNode;
parent.removeChild(toRemove);

IE故意做一些不正常的事情,这不应该令人惊讶!