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