JavaScript提取特定关键字对应时间段的函数示例

ChatGPT4o 使用 ChatGPT 4o 回答

问题:

使用js写一个函数,使用"ZD11557645"为关键字,快速提取"08:00-08:30"字符串。 <a class="" href="javascript:toRegd('/wxwith/regd/confirmRegd','2024-07-22','ZD11557645','ZS1140315','ZD11557645')"><div class="time_slot">08:00-08:30</div><div class="time_rest"><div class="rest_left">余号:4</div><div class="rest_right">¥ 36.00</div></div></a>

回答:

要在JavaScript中提取特定关键字(如"ZD11557645")并获取相应的时间段(如"08:00-08:30"),可以使用正则表达式和DOM操作来实现。以下是一个示例函数:

function extractTimeSlot(htmlString, keyword) {
    // 创建一个临时的DOM元素来解析HTML字符串
    var tempDiv = document.createElement('div');
    tempDiv.innerHTML = htmlString;

    // 查找所有的<a>标签
    var links = tempDiv.getElementsByTagName('a');

    for (var i = 0; i < links.length; i++) {
        var link = links[i];
        var href = link.getAttribute('href');

        // 检查href中是否包含关键字
        if (href && href.includes(keyword)) {
            // 查找包含时间段的<div>标签
            var timeSlotDiv = link.querySelector('.time_slot');
            if (timeSlotDiv) {
                return timeSlotDiv.textContent.trim();
            }
        }
    }

    // 如果没有找到匹配的时间段,返回null
    return null;
}

// 示例HTML字符串
var htmlString = `<a class="" href="javascript:toRegd('/wxwith/regd/confirmRegd','2024-07-22','ZD11557645','ZS1140315','ZD11557645')"><div class="time_slot">08:00-08:30</div><div class="time_rest"><div class="rest_left">余号:4</div><div class="rest_right">¥ 36.00</div></div></a>`;

// 关键字
var keyword = "ZD11557645";

// 调用函数并输出结果
var timeSlot = extractTimeSlot(htmlString, keyword);
console.log(timeSlot); // 输出: 08:00-08:30

这个函数的工作原理如下:

  1. 创建一个临时的div元素,并将HTML字符串设置为其内容。
  2. 查找所有的<a>标签。
  3. 遍历这些<a>标签,检查其href属性是否包含指定的关键字。
  4. 如果找到包含关键字的<a>标签,查找其子元素中包含时间段的<div>标签,并返回其文本内容。
  5. 如果没有找到匹配的时间段,返回null

你可以将这个函数应用于任何包含类似结构的HTML