@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.
@@ -936,8 +936,8 @@ var DOMUtils = (function () {
936
936
  return $ele?.innerHTML?.trim() === "";
937
937
  });
938
938
  }
939
- else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/gi) ||
940
- selector.match(/[^\s]{1}:contains\('(.*)'\)$/gi)) {
939
+ else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) ||
940
+ selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
941
941
  // contains 语法
942
942
  let textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
943
943
  let text = textMatch[2];
@@ -947,12 +947,18 @@ var DOMUtils = (function () {
947
947
  return ($ele?.textContent || $ele?.innerText)?.includes(text);
948
948
  });
949
949
  }
950
- else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/gi) ||
951
- selector.match(/[^\s]{1}:regexp\('(.*)'\)$/gi)) {
950
+ else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) ||
951
+ selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
952
952
  // regexp 语法
953
953
  let textMatch = selector.match(/:regexp\(("|')(.*)("|')\)$/i);
954
- let text = textMatch[2];
955
- let regexp = new RegExp(text);
954
+ let pattern = textMatch[2];
955
+ let flagMatch = pattern.match(/("|'),[\s]*("|')([igm]{0,3})$/i);
956
+ let flags = "";
957
+ if (flagMatch) {
958
+ pattern = pattern.replace(/("|'),[\s]*("|')([igm]{0,3})$/gi, "");
959
+ flags = flagMatch[3];
960
+ }
961
+ let regexp = new RegExp(pattern, flags);
956
962
  selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
957
963
  return Array.from(context.windowApi.document.querySelectorAll(selector)).filter(($ele) => {
958
964
  // @ts-ignore