我有html网页,我想以PDF格式下载此网页。所以我将这个网页转换为字符串,我必须发送到该服务。即我有不变的字符串HTML。我无法添加拆分字符串html的指标。当html网页太大而基本64字符串图像时,我必须用头像图像url更改此基本64字符串(因为它太大而无法用json发送数据)。我有短的html字符串与更改基本64字符串,然后我可以发送到服务端下载PDF。我有一个HTML字符串(看起来像我真正的html字符串)见下文:
var stringHTML =
"
<div id="myDiv">
<img src="abc" /></div>
<img src="abc" /></div>
<img src="abc" /></div>
<img src="abc" /></div>
</div>
";
我想将图片src
属性值更改为xyz
。即我想将HTML字符串转换为:
stringHTML =
"
<div id="myDiv">
<img src="xyz" /></div>
<img src="xyz" /></div>
<img src="xyz" /></div>
<img src="xyz" /></div>
</div>
";
如何更改此源属性值并再次返回字符串值?即改变操作后我必须有字符串html ..
答案 0 :(得分:1)
根据链接的possible duplicate question,您可以执行以下操作:
stringHTML = stringHTML.replace(/abc/g,"xyz");
或
stringHTML = stringHTML.replace(new RegExp("abc","g"),"xyz");
还值得注意的是,您当前的字符串无效。您需要使用单引号("
)替换开始和结束双引号('
),或者转义字符串中使用的双引号。并且,正如Ivan在评论中提到的,javascript不能跨越没有特殊限额的行(转义换行符等)。你可以这样定义它,我想:
let stringHTML = ' +
<div id="myDiv"> +
<img src="abc" /></div> +
<img src="abc" /></div> +
<img src="abc" /></div> +
<img src="abc" /></div> +
</div>';
你也可以创建一个数组并立即加入它:
let stringHTML = [
'<div id="myDiv">',
'<img src="abc" /></div>',
'<img src="abc" /></div>',
'<img src="abc" /></div>',
'<img src="abc" /></div>',
'</div>'
].join('');
有关多行字符串定义的更多信息,请参阅this question。