如何有效地检查路径字符串是否是 jQuery 中另一个路径字符串的子项

How can i check effectively whether a path string is a child of another path string in jQuery?

本文关键字:路径 字符串 另一个 是否是 有效地 检查 jQuery      更新时间:2023-09-26

我想检查一个路径(这是一个字符串)是否是jQuery中另一个路径(一个字符串)的子路径。例如:

var path1 = "''192.168.30.102'Test Share'Discovery'New  Discovery'F1'F10'F1";
var path2 = "''192.168.30.102'Test Share'Discovery";

在这种情况下,我应该得到结果为真。例2:

var path1 = "''192.168.30.102'Test Share'Discovery123'New  Discovery'F1'F10'F1";
var path2 = "''192.168.30.102'Test Share'Discovery";

在这种情况下,我应该得到的结果为假。例如。3:

var path1 = "''192.168.30.102'Test Share'Discovery'New  Discovery'F1'F10'F1";
var path2 = "''192.168.30.102'Test Share'Discovery'";

在这种情况下,我应该得到结果为真。

我尝试了indexOf()search(),它们在第二个和第三个示例中都失败了。在有多个单词或空格的情况下,这两种方法都会失败。以下是我尝试过的代码:

   var path1 = "''192.168.30.102'Test Share'Discovery'New  Discovery'F1'F10'F1";
   var n = path1.indexOf("''192.168.30.102'Test Share'Discovery'");

首先,您必须更改输入格式,如下所示。原因是"''"是转义字符,要将"''"放在字符串中,您必须通过将其替换为"''''"来转义"''"

var path1 = "''''192.168.30.102''Test Share''Discovery''New  Discovery''F1''F10''F1";
var path2 = "''''192.168.30.102''Test Share''Discovery";

然后您可以使用以下功能,

function isChildPath(parent, url){
    if(parent.indexOf(url) == 0){
        if (parent.charAt(url.length - 1) == "''" || parent.charAt(url.length) == "''")
            return true;
    }
    return false;
}

要检查路径 2 是否是路径 1 的子级,

isChildPath(path1,path2);