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

问题描述 投票:0回答:1

我想比较两个字符串之一,它们是使用javascript的通配符。

我正在检查此字符串是否在网页上找到

<div class="Modal A2aModalStep Step">并在变量k中进行检索。

并且想要进行比较。

like

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

但问题是类名有时会随机更改它的位置,例如step Model A2aModalStepA2aModalStep Step Model等...

所以,我想比较

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

我正在imacros中使用此javascript,因此无法使用预定义的功能

javascript imacros
1个回答
0
投票

如果您有权访问网页本身,请使用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\">"));
© www.soinside.com 2019 - 2024. All rights reserved.