我有一个在 Google map 上绘制轨道的 Javascript 函数。这是有问题的功能:
var stations;
var sats = [];
var lines = [];
var i = 0;
$('.tle-data-main').each(function() {
lines.push(this.innerText);
});
var data = lines.join("\n");
stations = orbits.util.parseTLE(data);
for (; i < stations.length; i++) {
var name = stations[i].name;
var satOpts = {
map: map,
tle: stations[i],
pathLength: 3,
};
var sat = new orbits.Satellite(satOpts);
sat.refresh();
sat.refresh_path();
sats.push(sat);
}
这从类 .tle-data-main
中获取一些数字,进行一些计算并显示结果。该功能完美运行。 (轨道抽屉使用 orbits.js 库)。
唯一的问题是,当我的“衰减”部分中出现日期时,我不想运行此函数。如果有日期,我不希望该函数运行,因为它已经衰减。我只希望它在没有日期的情况下运行。
所以我的“衰退”HTML 可以是这样的:
<li><span id="decay">Decay: </span>2017-07-03</li>
或者像这样:
<li><span id="decay">Decay: </span>In Orbit (No Decay Date)</li>
我试图寻找一些使用它的教程/示例,但找不到。
TL;DR 如果存在日期,请不要运行我的 Javascript 函数。
最佳答案
您可以检查 #decay
DOM
元素 .nextElement.textContent
中的模式 /\d{4}-\d{ 2}-\d{2}/
使用 RegExp.prototype.test()
匹配四位数字后跟 "-"
后跟两位数字再跟“-”
后跟两位数
if (/\d{4}-\d{2}-\d{2}/.test($("#decay")[0].nextSibling.textContent)) {
console.log("do not run function")
} else {
// do stuff
console.log("run function")
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><span id="decay">Decay: </span>2017-07-03</li>
</ul>
if (/\d{4}-\d{2}-\d{2}/.test($("#decay")[0].nextSibling.textContent)) {
console.log("do not run function")
} else {
// do stuff
console.log("run function")
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><span id="decay">Decay: </span>In Orbit (No Decay Date)</li>
</ul>
关于Javascript - 如果存在过去的日期,则不运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664521/