2017-01-18 16 views
1

GoogleシートのURLからスプレッドシートIDとシートIDを抽出するためのJavascript正規表現が必要です。 sheets.google.comスプレッドシートのURLはhttps://docs.google.com/spreadsheets/d/1QOKbrUz7AWUwT-hNfWd1Pxf__QObYCZ1rD2CKMjpnGw/edit#gid=0のようになります。GoogleシートのスプレッドシートIDとシートIDを抽出するJavascriptの正規表現URL

This Linkは、スプレッドシートIDとシートIDの抽出に使用する正規表現を記述します。私はJavascriptで試してみましたが、うまくいきません。

var spreadsheetId = new RegExp("/spreadsheets/d/([a-zA-Z0-9-_]+)").exec(resourceUrl); 
 
var sheetId = new RegExp("[#&]gid=([0-9]+)").exec(resourceUrl);

答えて

1

成功した場合、exec()メソッドは一致する文字をインデックスに配置します。インデックス0は、一致する文字の完全な文字列です。他のインデックス(1,2、...)は、カッコで区切られた正規表現の部分と一致する文字です。

正規表現はURL文字列の大部分と一致しますが、IDは括弧で区切られた部分です。あなたは括弧のひとつペアを持って両方のケースで、したがって、彼らはインデックス1であるので、必要な値は

spreadsheetId = new RegExp("/spreadsheets/d/([a-zA-Z0-9-_]+)").exec(resourceUrl)[1]; 
sheetId = new RegExp("[#&]gid=([0-9]+)").exec(resourceUrl)[1]; 

(両方の命令の終わりに[1]に注意してください)

であります
0

をGoogleスプレッドシートのIDが15以上の文字が含まれている、正規表現は、このようになると仮定すると:ここで私が試したコードです。 GIDはURLで利用可能である場合と利用できない場合があります。

var resourceUrl = "https://docs.google.com/spreadsheets/d/1QOKbrUz7AWUwT-hNfWd1Pxf__QObYCZ1rD2CKMjpnGw/edit#gid=0"; 

var matches = /\/([\w-_]{15,})\/(.*?gid=(\d+))?/.exec(resourceUrl); 

if (matches) { 
    console.log("Spreadsheet: " + matches[1]); 
    console.log("Sheet: " + matches[3]); 
} 
関連する問題