在 JavaScript 中,如何使用正则表达式,将所有 img 标签都替换成 div 标签,并获取到其中的 src 和 alt 等属性的值?
时间: 2024-02-13 22:06:29 浏览: 108
可以使用 JavaScript 中的 replace() 方法配合正则表达式来实现这个功能。具体实现可以参考下面的代码示例:
```javascript
var str = "<img src='image.jpg' alt='image'><img src='image2.jpg' alt='image2'>";
var result = str.replace(/<img\s+src='(.*?)'\s+alt='(.*?)'>/g, "<div data-src='$1' data-alt='$2'></div>");
console.log(result); // 输出 <div data-src='image.jpg' data-alt='image'></div><div data-src='image2.jpg' data-alt='image2'></div>
```
在上面的示例中,我们首先定义了一个包含多个 img 标签的字符串 str。然后,我们使用 replace() 方法,并将要替换的 img 标签对应的正则表达式作为第一个参数传入。在这个正则表达式中,我们使用了 \s+ 来匹配任意数量的空格,以此来匹配 img 标签中的各个属性。同时,我们使用了 () 来捕获 src 和 alt 属性的值。在替换字符串中,我们将 src 和 alt 属性的值通过 $1 和 $2 插入到 div 标签的 data-src 和 data-alt 属性中,实现了获取到其中的 src 和 alt 等属性的值的功能。
相关问题
取出网页中所有类似<div class="contentItem"><img src="/Areas/exercise/images/icon.png" alt="" class="itemImg"><a class="itemText" href="javascript:void(0)" onclick="OpenVideoPlay('d4106277-4eac-425d-b8da-26fb92447163','',2,0)"><p class="itemTitle"><img src="/Areas/exercise/images/xx.png" alt="" class="item_img">基本职能</p><p class="itemUserMessage"><span class="name">老浩</span><span class="address ellipsis">丰台区</span></p></a><div class="type"><p class="finish">已完成</p><div class="praise"><a target="_blank" href="/Exercise/ExerciseExam/HomeWorkIndex?learn_courseware_id=d4106277-4eac-425d-b8da-26fb92447163"><img src="/Areas/exercise/images/khzyh.png" alt="" class="praise_img"></a></div></div></div>这种元素list里面d4106277-4eac-425d-b8da-26fb92447163的值,用js
你可以使用 JavaScript 中的 DOM 操作方法来获取网页中所有类似 `<div class="contentItem">` 的元素,并提取其中 `d4106277-4eac-425d-b8da-26fb92447163` 的值。以下是一个示例代码:
```javascript
// 获取所有符合条件的元素
var elements = document.querySelectorAll('div.contentItem');
// 遍历元素列表
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
// 提取所需的值
var link = element.querySelector('a.itemText');
var onclickValue = link.getAttribute('onclick');
// 解析 onclick 属性值,提取目标值
var regex = /OpenVideoPlay\('([^']+)'/;
var match = onclickValue.match(regex);
if (match) {
var value = match[1];
console.log(value);
// 在这里可以对提取到的值进行操作
}
}
```
这段代码首先使用 `document.querySelectorAll` 方法获取所有具有类名为 `contentItem` 的 `<div>` 元素。然后,使用循环遍历这些元素,并在每个元素中查找包含目标值的属性。最后,使用正则表达式提取目标值,并进行处理。
请注意,这段代码应该在网页加载完成后执行,或者将其放在 `<script>` 标签中,并确保代码执行顺序正确。
阅读全文