簡體   English   中英

Javascript:將當前文件的名稱插入字段?

[英]Javascript: Insert name of current file into a field?

我有幾個相同的 HTML 文件,它們都有不同的名稱:

3089.html
68985.html
101.html
...and more

每個文件都有一個 id 為“productsku”的輸入字段:

<input type='text' id='productsku' />

我希望這個字段填寫 HTML 文件的名稱。 我只想使用 Javascript 來執行此操作(我不想使用 jQuery,因為我不想為這么小的任務加載 jQuery 庫)。

這是我的 Javascript 代碼:

    <script>
        window.onload = function(){
    document.getElementById('productsku').value=location.pathname; 
}
    </script>

它有效,但它放置了文件擴展名和路徑,而不僅僅是名稱。 例如,它放置/path/3089.html而不僅僅是“3089”

有什么辦法可以糾正這個嗎?

這是一個JS 小提琴

怎么樣:

 const parts = location.pathname.split('/'); // split the pathname into parts const [filename] = parts[parts.length - 1].split('.'); // take the filename from the last part of the path document.getElementById('productsku').value = filename;
 <input type="text" id="productsku" />

這是可能的解決方案

 let path = 'domainNameOrIPAddress/path/3089.html'; // let path = location.pathname; // Use this to get actual result let val = path.split('/').pop().replace('.html', ''); document.getElementById('productsku').value=val;
 <input type='text' id='productsku' />

您可以使用正則表達式來提取它...

 var path = "/this/that/other/12345.html"; console.log(path.match(/\/(\d+)\.html$/i)[1]);

希望這可以幫助你:

const productsku = /\/([^/]+)\.html/.exec(location.pathname)[1]
document.getElementById('productsku').value=productsku;

更好的方法是從路徑中提取名稱,如下所示:

<script>
    window.onload = function(){
        var locationName = location.pathname.substring(location.pathname.lastIndexOf('/')+1, location.pathname.lastIndexOf('.html'));
        document.getElementById('productsku').value=locationName; 
    }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM