Apps Script требует экранирования ввода, если вы сами пишете строку (т.е. тестируете ввод).
неправильно:
input = "\\NAS_01\GlobalShare\Docs\Customers\2017\S\Smith, John\photo1.jpg"
вправо:
input = "\\\\NAS_01\\GlobalShare\\Docs\\Customers\\2017\\S\\Smith, John\\photos1.jpg"
В приложении Apps Script я могу получитьсоответствующая часть со следующим регулярным выражением:
/\d{4}\\[A-Z]\\.+\\/
т.е.:
function unc2uri(input) {
const forwardSlash = String.fromCharCode(47);
const backSlash = String.fromCharCode(92);
if(!input)
input = '\\\\NAS_01\\GlobalShare\\Docs\\Customers\\2017\\S\\Smith, John\\photo1.jpg';
// Should show \\NAS_01\GlobalShare\Docs\Customers\2017\S\Smith, John\photo1.jpg
Logger.log(input);
const matcher = /\d{4}\\[A-Z]\\.+\\/;
const arrayOfMatches = input.match(matcher);
// Should show [2017\S\Smith, John\].
Logger.log(arrayOfMatches);
}
Чтобы проверить, запросите строку ввода из другого места (например, Browser.inputBox
) ипередайте это выше как input
:
function readInput() {
unc2uri(Browser.inputBox("What's the path?"));
}
В поле ввода, вы должны ввести строку, которую вы ожидаете отправить, как мы ее видим, т.е. \\NAS_01\GlobalShare\Docs\Customers\2017\S\Smith, John\photo1.jpg