Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 如何使用正则表达式替换标记之间的文本_Javascript_Regex - Fatal编程技术网

Javascript 如何使用正则表达式替换标记之间的文本

Javascript 如何使用正则表达式替换标记之间的文本,javascript,regex,Javascript,Regex,我想替换一个字符串中的一些文本,该字符串表示一个div标记,该标记可能包含也可能不包含样式和类属性。比如说, var s = "<div style='xxx' class='xxx'>replaceThisText<div> var s=“replaceThistText 如果只是标签,我相信我可以这样做: str = str.replace(/<div>[\s\S]*?<\/div>/, '<div>' + newText+ '

我想替换一个字符串中的一些文本,该字符串表示一个div标记,该标记可能包含也可能不包含样式和类属性。比如说,

var s = "<div style='xxx' class='xxx'>replaceThisText<div>
var s=“replaceThistText
如果只是标签,我相信我可以这样做:

str = str.replace(/<div>[\s\S]*?<\/div>/, '<div>' + newText+ '<\/div>');
str=str.replace(/[\s\s]*?/,“”+newText+“”);

但是如何考虑属性呢?

用字符串作为HTML内容生成一个临时元素,然后在更新内容后获取其中的div以更新内容获取临时元素的HTML

var s=“replaceThisText”;
//创建一个临时div元素
var temp=document.createElement('div');
//将内容设置为字符串
temp.innerHTML=s;
//在临时元素中获取div
//并更新div中的内容
temp.querySelector('div')。innerHTML='newText';
//获取中的当前HTML内容
//临时部门

console.log(temp.innerHTML)
使用字符串作为HTML内容生成一个临时元素,然后在更新内容后获取其中的div以更新内容获取临时元素的HTML

var s=“replaceThisText”;
//创建一个临时div元素
var temp=document.createElement('div');
//将内容设置为字符串
temp.innerHTML=s;
//在临时元素中获取div
//并更新div中的内容
temp.querySelector('div')。innerHTML='newText';
//获取中的当前HTML内容
//临时部门

console.log(temp.innerHTML)
Regex永远不会是解析html内容的好决定。
考虑下面的简短解决方案,使用<代码> DOMParser < /Cord>对象(对于支持<代码> DOMParser >代码>的浏览器,请参阅:

var s=“replaceThisText”,
tag=(new DOMParser()).parseFromString(s'text/html').querySelector('.xxx');
tag.textContent='newText';//替换为新文本

console.log(tag.outerHTML);//输出带有替换内容的初始标记表示形式
Regex永远不会是解析html内容的好决定。
考虑下面的简短解决方案,使用<代码> DOMParser < /Cord>对象(对于支持<代码> DOMParser >代码>的浏览器,请参阅:

var s=“replaceThisText”,
tag=(new DOMParser()).parseFromString(s'text/html').querySelector('.xxx');
tag.textContent='newText';//替换为新文本

console.log(tag.outerHTML);//输出带有替换内容的初始标记表示形式
将其解析为DOM元素,然后更改
.innerHTML
.textContent
。将其解析为DOM元素,然后更改
.innerHTML
.textContent
。除了使用
查询外,
临时firstChild.innerHTML='newText'
如何Y选择器
?@SpencerWieczorek:如果内容中没有前导空格或文本,也可以这样做……否则它可能是textnode除了使用
查询选择器
temp.firstChild.innerHTML='newText'
之外,如果内容中没有前导空格或文本,也可以这样做……或者rwise它可能是textNode