孩子,我有这些字符串这是文件和文件夹的地址的:的Javascript说,如果一个文件夹是另一个
- ../../../folder1/sub1/sub12/
- .. /../../folder1/
- ../../../another-folder/
我想用JavaScript来对它们进行比较 - possibily jQuery的 - 看看是否例如串1有一部分,例如字符串2,但更多的是说,字符串1是字符串2的孩子。
我该怎么做?
孩子,我有这些字符串这是文件和文件夹的地址的:的Javascript说,如果一个文件夹是另一个
我想用JavaScript来对它们进行比较 - possibily jQuery的 - 看看是否例如串1有一部分,例如字符串2,但更多的是说,字符串1是字符串2的孩子。
我该怎么做?
如果你的字符串,也包括含有..
不仅在一开始我会建议检查是否.indexOf
回报0
,而不是任何不-1
绝对路径或路径。
它可以帮助像例如。
var path1 = "/rootFolder/";
var path2 = "../folder/rootFolder/";
if (path2.indexOf(path1) === 0) {
console.log("You want this"); // won't get executed => good
}
if (path2.indexOf(path1) !=-1) {
console.log("You don't want this"); // will get executed => bad
}
你可以尝试像下面
var path1 = "../../../folder1/";
var path2 = "../../../folder1/sub1/sub12/";
if (path2.indexOf(path1) != -1){
//path2 is a sub of path 1
}
可以使用indexOf
方法找到一个字符串是否是另一个字符串的一部分。
的的indexOf()方法返回在字符串中 指定值的第一次出现的位置。
如果搜索的值永远不会发生,则此方法返回-1。
var test = "../folder/subfolder1";
var test2 = "../folder";
if (test.indexOf(test2) !=-1) {
alert(test + " is a subfolder of " + test2);
}
if(string1.indexOf(string2) != -1){
//string2 is present in string1
}
else{
//string2 is not present in string1
}
请问你能举一个indexof返回0的例子吗? –
@MatteoPagliazzi例如'console.log(“../ folder/1”.indexOf(“../ folder”));'。当字符串位于另一个字符串的开始位置时,开始索引为0,所以'indexOf'将重新调用'0'。 – kubetz