@whitesev/domutils 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.umd.js CHANGED
@@ -939,8 +939,8 @@
939
939
  return $ele?.innerHTML?.trim() === "";
940
940
  });
941
941
  }
942
- else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/gi) ||
943
- selector.match(/[^\s]{1}:contains\('(.*)'\)$/gi)) {
942
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
943
+ selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
944
944
  // contains 语法
945
945
  let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
946
946
  let text = textMatch[2];
@@ -950,12 +950,18 @@
950
950
  return ($ele?.textContent || $ele?.innerText)?.includes(text);
951
951
  });
952
952
  }
953
- else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/gi) ||
954
- selector.match(/[^\s]{1}:regexp\('(.*)'\)$/gi)) {
953
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
954
+ selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
955
955
  // regexp 语法
956
956
  let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
957
- let text = textMatch[2];
958
- let regexp = new RegExp(text);
957
+ let pattern = textMatch[2];
958
+ let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
959
+ let flags = "";
960
+ if (flagMatch) {
961
+ pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
962
+ flags = flagMatch[3];
963
+ }
964
+ let regexp = new RegExp(pattern, flags);
959
965
  selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
960
966
  return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
961
967
  // @ts-ignore