我需要拆分用户输入的路径并仅抓取其中的某些部分。 对于例如如果使用输入路径为:
/content/mypath/myfolder/about/images/abc.jpg
然后我想只显示images/abc.jpg
。
我正在
未捕获错误:语法错误,无法识别的表达式
目前错误。
这是我的代码。
$(document).ready(function(){
$('#getData').click(function(){
imgPath = $('#imgPath').val();
console.log($(imgPath).split('/'));
//console.log(slicedPath);
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
Image path: <input type="text" id="imgPath">
<button id="getData">Click</button>
&#13;
答案 0 :(得分:1)
$(imgPath)
会尝试找到imgPath
是选择器的元素。由于用户输入的路径不是正确的选择器,它将抛出错误。
例如,如果用户输入了/content/mypath/myfolder/about/images/abc.jpg
,则选择器将是$('/content/mypath/myfolder/about/images/abc.jpg')
,这是无效的,因此错误。
您可以使用RegEx获取图像路径
imgPath.match(/images\/.*$/i)[0]
正则表达式将匹配images/
后跟任意数量的字符。 match
返回一个数组,因此使用[0]
将获取图像路径。
$(document).ready(function() {
$('#getData').click(function() {
var imgPath = $('#imgPath').val();
console.log(imgPath.match(/images\/.*$/i)[0]);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
Image path: <input type="text" id="imgPath" value="/content/mypath/myfolder/about/images/abc.jpg">
<button id="getData">Click</button>
答案 1 :(得分:1)
我假设想要最后两个路径值。
$(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];
});
});
答案 2 :(得分:-1)
您应该使用console.log(imgPath.split("/"))
代替console.log($(imgPath).split("/"))
。
此处imgPath
只是一个存储输入值的变量,而不是用作$(imgPath)
的dom元素。