孩子,我有這些字符串這是文件和文件夾的地址的:的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