js正则修改html中src的内容,正则替换html中的src路径为全路径
时间: 2024-02-28 19:52:11 浏览: 21
可以使用正则表达式和JavaScript来替换HTML中的src路径为全路径。
以下是一个示例代码,它将在HTML中查找所有的img标签,并将它们的src属性替换为完整的URL路径:
```javascript
// 获取当前网页的URL路径
var currentUrl = window.location.href;
// 创建正则表达式,匹配img标签的src属性
var regex = /<img.*?src="(.*?)"/g;
// 获取整个HTML文本
var html = document.documentElement.innerHTML;
// 替换所有匹配的src路径为完整的URL路径
html = html.replace(regex, '<img src="' + currentUrl + '$1"');
// 将修改后的HTML文本重新设置回页面中
document.documentElement.innerHTML = html;
```
需要注意的是,这段代码仅仅是一个示例,实际使用时需要根据具体情况进行修改。同时,也要注意使用正则表达式替换HTML文本可能会带来一些潜在的风险和问题。
相关问题
Ueditor中如何使用setContent() 不改变html里的图片路径
在使用 `setContent` 方法设置 HTML 内容时,Ueditor 提供了一个 `filterTxt` 方法,可以过滤掉 HTML 内容中的一些不需要的属性或元素,从而保留图片等资源文件的相对路径。
使用 `filterTxt` 方法的具体步骤如下:
1. 获取需要设置的 HTML 内容。
```javascript
var content = "<p>这是一段包含图片的 HTML 内容</p><img src='img/pic.jpg'>";
```
2. 在设置 HTML 内容之前,调用 `filterTxt` 方法对 HTML 内容进行过滤。
```javascript
content = editor.getOpt('filterTxt')(content);
```
3. 使用 `setContent` 方法设置过滤后的 HTML 内容。
```javascript
editor.setContent(content);
```
4. 在保存 HTML 内容时,如果需要将相对路径转换为绝对路径,可以使用 `getContent` 方法获取 HTML 内容,然后使用正则表达式替换相对路径。
```javascript
var content = editor.getContent();
content = content.replace(/src=['"]([^'"]+)['"]/g, function(match, p1) {
var absoluteUrl = new URL(p1, window.location.href).href;
return 'src="' + absoluteUrl + '"';
});
```
这样做的效果是过滤掉 HTML 内容中的一些不需要的属性或元素,并保留图片等资源文件的相对路径。在保存 HTML 内容时,可以将相对路径转换为绝对路径,从而避免图片等资源文件路径出错的问题。
我想替换的是 <image src="xxxx" />的地址
如果你想替换的是 `<img>` 标签中的 `src` 属性,那么你需要修改 JavaScript 代码中的正则表达式,以匹配 `<img>` 标签的 `src` 属性。下面是修改后的示例代码:
```java
public class MyWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
String javascript = "javascript:(function() {"
+ "var imgs = document.getElementsByTagName('img');"
+ "for (var i = 0; i < imgs.length; i++) {"
+ "var img = imgs[i];"
+ "var url = img.getAttribute('src');"
+ "if (url.startsWith('http')) {"
+ "var xhr = new XMLHttpRequest();"
+ "xhr.open('GET', url, true);"
+ "xhr.responseType = 'arraybuffer';"
+ "xhr.onload = function() {"
+ "if (xhr.status === 200) {"
+ "var uInt8Array = new Uint8Array(xhr.response);"
+ "var i = uInt8Array.length;"
+ "var binaryString = new Array(i);"
+ "while (i--) {"
+ "binaryString[i] = String.fromCharCode(uInt8Array[i]);"
+ "}"
+ "var data = binaryString.join('');"
+ "var base64 = window.btoa(data);"
+ "img.setAttribute('src', 'data:image/png;base64,' + base64);"
+ "}"
+ "};"
+ "xhr.send();"
+ "}"
+ "}"
+ "})()";
view.loadUrl(javascript);
}
}
```
这段代码中,我们使用 `img.getAttribute('src')` 来获取 `<img>` 标签的 `src` 属性,然后将其替换为 Base64 编码字符串。同样,你需要将图片的本地路径替换为对应的路径。