使用 javascript/jQuery 测试函数的数组

Testing an array for a function with javascript/jQuery

本文关键字:函数 数组 测试 jQuery javascript 使用      更新时间:2023-09-26

我目前正在从文档中提取姓氏,并使用...

    var txt = $('p.overview.text').text();
    var lastName = txt.match(/Last Name: (.*)/)[1].split("First Name: ", 1);
    GM_setClipboard(lastName);

但是我想针对数组测试lastName,以确保它不是这些"I","II","III","IV"等中的任何一个。因为给我文件和姓氏的系统有时会搞砸,如果这个人有一个罗马数字(即杰里·路易斯六世="VI"而不是"路易斯"),就会给我罗马数字(而不是姓氏)。

我尝试在运行它之前首先测试的是实际文档

    var txt = $('p.overview.text').text();
    var lastName = txt.match(/Last Name: (.*)/)[1].split("First Name: ", 1);
    var lastNameVal = lastName[0]; // This is the correct variable for actual use
    lastNameVal = "I"; // This is how I am testing it, will delete when done with testing
    if (lastNameVal.text !== "I") {
        GM_setClipboard(lastNameVal);
    }

上述工作原理是,它在分配变量后检测到变量值为"I"。但显然我需要针对一系列罗马数字进行测试,可能会上升到 XII 左右。我尝试使用 || 在 if 语句中创建数组(或)操作员要像这样测试...

        if (lastNameVal !== "I" || "II" || "III") {
        GM_setClipboard(lastNameVal);
    }

但这行不通...实现这一目标的最佳方法是什么?谢谢

尝试:

  if (!(lastNameVal == "I" || lastNameVal ==  "II" || lastNameVal == "III")) {
            GM_setClipboard(lastNameVal);
        }

保留一组罗马数字以检查

var txt = $('p.overview.text').text();
var lastName = txt.split('Last Name:').pop().split("First Name:").shift().trim();
var romans = ["I","II","III","IV","V","VI","VII","VIII","IX"];
if (romans.indexOf(lastName) === -1) {
    GM_setClipboard(lastName);
}