javascript - 带有斜杠的 JsFiddle URL 被评估为正确的链接
问题描述
我写了一个评估 JSFiddle 片段 URL 的小方法。
一个有效的 JSFiddle 片段 URL 如下所示:https://jsfiddle.net/BideoWego/y200sqpr/或https://jsfiddle.net/BideoWego/y200sqpr。
无效的 URL 是其他任何东西。
它似乎运作良好,但出于某种奇怪的原因,它评估https://jsfiddle.net/BideoWego/为真。我怎样才能解决这个问题。
// this should evaluate to false
console.log(checkCourseContentElementCodeFiddleUrl("https://jsfiddle.net/BideoWego/"));
// this should evaluate to true
console.log(checkCourseContentElementCodeFiddleUrl("https://jsfiddle.net/BideoWego/y200sqpr/"));
function checkCourseContentElementCodeFiddleUrl(url) {
return !!url.match(/((\/\/\/?|https?:\/\/)?(www\.)?jsfiddle\.net\/.+\/.?([?#].*)?)/gi);
}
解决方案
我的解决方案是,如果最后一个字符/
在正则表达式检查之前将其删除,因此只有在 URL 中有第二个参数时它才会通过。
工作示例
// this should evaluate to false
console.log(checkCourseContentElementCodeFiddleUrl("https://jsfiddle.net/BideoWego/"));
// this should evaluate to true
console.log(checkCourseContentElementCodeFiddleUrl("https://jsfiddle.net/BideoWego/y200sqpr/"));
function checkCourseContentElementCodeFiddleUrl(url) {
if (url.endsWith("/")) url = url.substring(0, url.length - 1)
return !!url.match(/((\/\/\/?|https?:\/\/)?(www\.)?jsfiddle\.net\/.+\/.?([?#].*)?)/gi);
}
推荐阅读
- python - 根据嵌套字典列表中的匹配键创建值字典
- typescript - 我想使用 Firebase Cloud Functions 和 passport-twitter 对 Twitter 进行 OAuth 身份验证,但它会超时
- python - LSTM/GRU 中的隐藏状态在预测期间会发生变化吗?
- rust - 如何将str更改为rust中的数组
- regex - jmeter html报告生成 - 跳过一个thred组
- c++ - 带有向量的 C++ 魔术 8 球
- python - 为什么我的 return 语句没有显示任何输出?
- python-3.x - NameError:名称“子弹”未定义
- r - 为什么一个 R 函数包含大约。400行代码有633Kb?
- javascript - 在 javascript+flow 中,将 ?string 发送到需要字符串的函数中