Javascript 在jQuery中拆分URL路径并获取其一部分
我需要分割用户输入的路径,并只获取其中的某些部分。 例如,如果用户输入路径为:Javascript 在jQuery中拆分URL路径并获取其一部分,javascript,jquery,arrays,url,split,Javascript,Jquery,Arrays,Url,Split,我需要分割用户输入的路径,并只获取其中的某些部分。 例如,如果用户输入路径为: /content/mypath/myfolder/about/images/abc.jpg 然后我只想显示图像/abc.jpg 我要走了 未捕获错误:语法错误,无法识别的表达式 目前的错误 这是我的密码 $(文档).ready(函数(){ $('#getData')。单击(函数(){ imgPath=$('#imgPath').val(); log($(imgPath).split('/'); //console
/content/mypath/myfolder/about/images/abc.jpg
然后我只想显示图像/abc.jpg
我要走了
未捕获错误:语法错误,无法识别的表达式
目前的错误
这是我的密码
$(文档).ready(函数(){
$('#getData')。单击(函数(){
imgPath=$('#imgPath').val();
log($(imgPath).split('/');
//console.log(slicedPath);
});
});代码>
图像路径:
单击$(imgPath)
将尝试找到imgPath
所在的元素。由于用户输入的路径不是正确的选择器,它将抛出错误。
例如,如果用户输入的/content/mypath/myfolder/about/images/abc.jpg
选择器将是$('/content/mypath/myfolder/about/images/abc.jpg')
,这不是有效的express,因此会出现错误
您可以使用RegEx获取图像路径
imgPath.match(/images\/.*$/i)[0]
正则表达式将匹配图像/
,后跟任意数量的字符match
返回一个数组,因此使用[0]
将获得图像路径
$(文档).ready(函数(){
$('#getData')。单击(函数(){
var imgPath=$('#imgPath').val();
log(imgPath.match(/images\/.*$/i)[0]);
});
});代码>
图像路径:
单击您应该使用console.log(imgPath.split(“/”)而不是console.log($(imgPath.split(“/”)
)
这里,imgPath
只是一个存储输入值的变量,而不是用作$(imgPath)
的dom元素
$(document).ready(function(){
$('#getData').click(function(){
imgPath = $('#imgPath').val();
var theArray = imgPath.split('/'); // split path into parts
// take the last two indexes to form short path
var shortPath = theArray[theArray.length - 2] + '/' +
theArray[theArray.length - 1];
});
});
.val()
返回字符串,而不是DOM元素。要求jQuery包装它是行不通的。只需使用imgPath.split('/')
获取最后一部分的标准是什么?您是在寻找某个单词(即“图像”),还是在寻找一个文件和直接的父对象?最后一部分应该只是一个图像名称,后跟图像扩展名。或者更简洁地说:theArray.split(-2).join('/')