如何将通配符字符串与 javascript 进行比较

how to compare wildcard string with javascript

我想比较两个字符串,一个是通配符 javascript。

我正在检查是否在网页上找到了这个字符串。

<div class="Modal A2aModalStep Step"> 并在变量 k.

中检索它

想比较一下

喜欢

if ( k == "<div class=\"Modal A2aModalStep Step\">") {
  //some code
} 

但问题是 class 名称会随机更改其位置,例如有时 step Model A2aModalStepA2aModalStep Step Model 等...

所以,我想比较一下

if ( k == "<div class=\"[Model|A2aModalStep|Step] [Model|A2aModalStep|Step] [Model|A2aModalStep|Step]\">"){
  //some code
} 

我在 imacros 中使用这个 javascript,所以不能使用预定义函数。必须使用运算符和变量

进行纯 javascript 比较

如果您有权访问网页本身,请使用 DOM 方法查找是否存在具有这 3 个 类 的元素:

const div = document.querySelector('.Modal.A2aModalStep.Step');
if (div) {
  // some code
}

选择器字符串不关心 类.

的顺序

如果您不能使用任何 DOM 方法,我想您可以改用正则表达式:匹配 " 后,先查找 [^"]*\bModal\b,然后查找[^"]*\bA2aModalStep,对于 [^"]*\bStep

const check = str => /div class="(?=[^"]*\bModal)(?=[^"]*\bA2aModalStep)(?=[^"]*\bStep)/.test(str);
console.log(check("<div class=\"Modal A2aModalStep Step\">"));
console.log(check("<div class=\"Modal Step A2aModalStep\">"));
console.log(check("<div class=\"Modal A2aModalStep\">"));