我正在尝试使用Google脚本将用户的文件上传到我的Google云端硬盘。
我将google scipt部署为网络应用程序。我有两个文件:
form.html
<div id="output"></div>
<form id="myForm">
<input type="hidden" name="user_id" id="user_id" value="<?= user_id ?>">
<input type="file" name="myFile">
<input type="submit" id="upload_button" value="Upload File"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
<script>
function fileUploaded(status) {
document.getElementById('upload_button').value = "Upload File";
document.getElementById('output').innerHTML = status;
}
</script>
<style>
input { display:block; margin: 20px; }
</style>
Run Code Online (Sandbox Code Playgroud)
服务器
function folderExists(name) {
var folders = DriveApp.getFoldersByName(name);
return folders.hasNext();
}
function createForm(uid) {
var t = HtmlService.createTemplateFromFile('form.html');
t.user_id = uid;
return t.evaluate().setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function doGet(e) {
var uid = …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个正则表达式来匹配可执行版本号。
它可以通过两种方式提供:
MAJOR.MINOR.TINYMAJOR.MINOR.TINY.BUILD_NUMBER我不需要解析这些值,只需检查匹配即可。所以,我可以:
^\d+[\.\d+]*$。好的,但是这个正则表达式将匹配具有 5 个或更多版本部分的字符串,即1.2.3.4.5. 此外,它将匹配像1..2.3. 做类似的事情会很棒^[as many digits as you want and only one .]{3,4}$。
PS当然,我可以首先检查类似的东西^(\d*)\.(\d*)\.(\d*)$,^(\d*)\.(\d*)\.(\d*)\.(\d*)$如果不匹配则检查。但也许有更好(更聪明)的方法来做到这一点。
我使用repython 模块来检查匹配:
import re
version_regexp = re.compile(r'^\d+[\.\d+]*$')
versions = ['dsvfsdf',
'1.a.3',
'1.2.4',
'1.4..5.6',
'0.3.1',
'a.b.c.d',
'1,2,3']
for i, sample in enumerate(versions):
print('Sample[%d]: %s' % (i, True if version_regexp.match(sample) else False))
Run Code Online (Sandbox Code Playgroud)
先感谢您!