2017-04-21 46 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

相關問題