我想比较两个字符串之一,它们是使用javascript的通配符。
我正在检查此字符串是否在网页上找到
<div class="Modal A2aModalStep Step">
并在变量k中进行检索。
并且想要进行比较。
like
if ( k == "<div class=\"Modal A2aModalStep Step\">"){
//some code
}
但问题是类名有时会随机更改它的位置,例如step Model A2aModalStep
或A2aModalStep Step Model
等...
所以,我想比较
if ( k == "<div class=\"[Model|A2aModalStep|Step] [Model|A2aModalStep|Step] [Model|A2aModalStep|Step]\">"){
//some code
}
我正在imacros中使用此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\">"));