首页 > 解决方案 > python设置变量等于null如果没有输入否则不是特定类型然后是字符串

问题描述

我正在制作一个板,您可以在其中发布文本、链接、照片和视频。我为此使用python烧瓶,JavaScript

对于视频发布部分,我希望用户输入 YouTube 链接 URL,并将其设置为自动更改为嵌入地址。我的 python 和 ajax 代码适用于 YouTube URL 格式,但问题是当用户没有为视频 URL 输入任何内容或将随机字母或非 YouTube 链接格式放入视频链接输入时。

Python

@app.route('/post', methods=['POST'])
def savingPost():
    ...
    link = request.form['video_give'].split("=")[1]
    embed = "https://www.youtube.com/embed/"
    video = embed + link
    
    doc = {
        ...
        'video': video,
        ...
        }
    db.collection.insert_one(doc)

    return jsonify({'msg': 'Posted!'})

javascript

function postArticle(img_location) {
        ...
        let video = $('#post-video').val();
        ...
        $.ajax({
            type: "POST",
            url: "/post",
            data: {..., video_give: video},
            success: function (response) {
                alert(response["msg"]);

            }
        })

    }

如何为无输入或 youtube 格式以外的情况设置代码?

标签: javascriptpythonflask

解决方案


一个有助于解决这个问题的类似问题是Regex for youtube URL

您可以RegExp在发送请求之前使用 s 验证 youtube 链接。

const ytRegex = /^(https?\:\/\/)?(www\.)?(youtube\.com|youtu\.?be)\/.+$/
function postArticle(img_location) {
  ...
  let video = $('#post-video').val();
  if (ytRegex.test(video)){
    // Good format
  } else {
    // Bad format
  }
  ...
}

推荐阅读