2017-04-21 45 views
0

我需要显示用户动态输入的路径的名称和拆分路径。 为此,我分割了用户输入的路径,并只抓取其中的一部分。对于例如如果使用的路径为:显示路径的拆分文本(如果存在)否则不显示

/content/mypath/myfolder/about/images/abc.jpg 然后我显示图像/ abc.jpg。

但是,可以说用户只输入名称并且不输入路径,至少应该在该情况下显示名称&。

但它试图做到这一点时会引发错误。

遗漏的类型错误:无法读取属性 '0' 空的

$(document).ready(function(){ 
 
    $('#getData').click(function(){ 
 
    var name = $('#name').val(); 
 
    var imgPath = $('#imgPath').val(); 
 
    var newPath = imgPath.match(/images\/.*$/i)[0]; 
 
    $('.container').append(
 
     $('<p>').text(name), 
 
     $('<p>').text(newPath, function(){ 
 
     return /^\/images/.test(newPath) ? src :$('#imgPath').val(); 
 
     }) 
 
    ); 
 
    //console.log(slicedPath); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 
 
Name: <input type="text" id="name"> 
 
Image path: <input type="text" id="imgPath"> 
 
<div class="container"> 
 

 
</div> 
 
<button id="getData">Click</button>

遗漏的类型错误:无法读取属性 '0' 空的

回答

1

你的问题是在这条线

var newPath = imgPath.match(/images\/.*$/i)[0]; 

你正尝试用正则表达式运行匹配,然后选择第一个结果,[0]位置。所以当没有结果时,如果没有结果,则尝试获取[0]位置。

只是删除[0]在该行的结束,这将工作

var newPath = imgPath.match(/images\/.*$/i); 
+0

完美,谢谢!顺便说一下,我使用src而不是我的代码中的文本在我检查值时犯了另一个错误。 – Sunny

+0

很酷,你发现它,告诉我,如果我可以在其他任何帮助 – xploshioOn

+0

它运作良好,但我不认为我写的回报值是正确的!需要改变这一点,以确保它的工作准确!你能帮我做到吗? – Sunny

相关问题