【问题标题】:How to check if http is in the string? [duplicate]如何检查http是否在字符串中? [复制]
【发布时间】:2020-10-23 05:19:39
【问题描述】:

我必须建立一个 NodeJS/React 网站。该网站是关于用户发布他们的活动的。因此,当用户添加他的活动时,他可以选择添加活动的注册链接(链接到他们可以直接申请的第三方网站)。添加注册链接只需输入字段即可。 我在哪里要求链接:

const AddEvent = () => {
  return <input type="text" name="registrationLink" />;
};

我在哪里显示链接:

const EventInfo = props => {
  const { registrationLink } = props; // i.e this outputs https://www.google.com

  return <a href={registrationLink}>Register Now</a>;
};

我现在如何验证输入以仅接受链接(即仅使用 https 的链接)?有什么简单的方法可以做到这一点?最好的!

【问题讨论】:

  • 试试&lt;input type="url" name="registrationLink" pattern="https?://.+" required /&gt;

标签: javascript html reactjs


【解决方案1】:

您应该在提交之前验证输入字段。如果链接无效,请通知用户。

您可以检查此答案以检查 url 的验证

Check if a JavaScript string is a URL

【讨论】:

  • 我尝试了第一个投票最高的答案,但当字符串没有 https 时它不会返回错误。有趣。
  • 我建议使用第二个答案。仅检查协议是否为“https”
【解决方案2】:

您可以使用 URL webApi。

https://developer.mozilla.org/en-US/docs/Web/API/URL/URL

如果传递给构造函数的字符串不是有效的 URL 格式,它会抛出一个可以捕获的错误。

【讨论】:

  • 你能把我的答案标记为好答案吗?真的很感激:)
【解决方案3】:

我在其中一个主题中找到了答案,我只想检查这是否是检查 url 的最佳方法。

  function isValidURL(string) {
    var regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/;
    if (!regex.test(string)) {
      return false;
    } else {
      return true;
    }
  }

请告诉我!最好的!

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 2015-02-24
    • 1970-01-01
    • 2015-05-05
    • 2012-12-21
    • 2021-01-03
    • 2011-03-29
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多