我目前正在使用決議 Google Sheet ID 并插入到代碼中的輸入。
let sheetIdInput = document.getElementById('sheetidinput');
let id = sheetIdInput.value;
我希望用戶能夠將整個 Google Sheet URL 粘貼到這個輸入中sheetidinput,并且它只使用 URL 中的 Sheet ID。
示例 Google Sheet URL 是
https://docs.google.com/spreadsheets/d/132SaKuLRdHcwEKhhQVOKd2_3j30nFvQbTgplh4nPZOg/edit#gid=0
在這種情況下,作業表 ID 介于.../d/和/edit...132SaKuLRdHcwEKhhQVOKd2_3j30nFvQbTgplh4nPZOg
這種模式在所有 Google Sheet URL 中重復出現。任何幫助將不勝感激。
uj5u.com熱心網友回復:
您可以使用正則運算式來做到這一點:
let url = "https://docs.google.com/spreadsheets/d/132SaKuLRdHcwEKhhQVOKd2_3j30nFvQbTgplh4nPZOg/edit#gid=0";
let capturedId = url.match(/\/d\/(. )\//)
console.log(capturedId[1])
// prints : 132SaKuLRdHcwEKhhQVOKd2_3j30nFvQbTgplh4nPZOg
uj5u.com熱心網友回復:
您可以使用正則運算式:
var re = /.*\/d\/(.*)\/edit.*/;
var url = "https://docs.google.com/spreadsheets/d/132SaKuLRdHcwEKhhQVOKd2_3j30nFvQbTgplh4nPZOg/edit#gid=0
";
var match = url.match(re);
var id = match[1]
//Use id
}
uj5u.com熱心網友回復:
盡管上述解決方案都適用于您的情況,但我也添加了這個:
let url = "https://docs.google.com/spreadsheets/d/132SaKuLRdHcwEKhhQVOKd2_3j30nFvQbTgplh4nPZOg/edit#gid=0";
let matches = /\/([\w-_]{18,})\/(.*?gid=(\d ))?/.exec(url);
console.log("spreadsheet id " matches[1]);
console.log("sheet id " matches[3]);
通過matches以下方式使用正則運算式:
第一個捕獲組用于
id通過匹配任何單詞字符并假設 id 超過 18 個字符來回傳電子表格的 ;第二個和第三個捕獲組用于
id通過匹配 之后的字符來回傳作業表的gid。
參考
- 正則運算式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378469.html
標籤:javascript 谷歌表格
