- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 NodeJS 应用程序,可以将 URL 存储在数据库中。我想使用 URL 作为主键,以避免存储重复项。为了做到这一点,我需要 url 尽可能采用最简单的形式,删除多余的斜杠、参数和前缀。
如何将下面列出的所有 URL 转换为与列出的第一个 URL 相同的字符串?有没有一种方法可以安全地做到这一点,以解释我可能没有在下面列出的其他变化?
https://website.com/coolpage/938921/
https://www.website.com/coolpage/938921/
http://website.com/coolpage/938921/
https://website.com/coolpage/938921/
https://website.com/coolpage/938921/?awesome=1
最佳答案
使用标准 Node.js url
模块。
解决方案:
require('url');
function getBaseUrl(url){
const u = new URL(url);
const result =`${u.host}${u.pathname}`
.split('//').join('/')
.replace('www.', '');
// cut off the trailing '/' character from the result
if (result.length && result[result.length - 1] === '/')
return result.substring(0, result.length - 1)
return result;
}
测试:
const urls = [
"https://website.com/coolpage/938921/",
"https://www.website.com/coolpage/938921/",
"http://website.com/coolpage/938921/",
"https://website.com/coolpage/938921/",
"https://website.com/coolpage/938921/?awesome=1",
"https://website.com/coolpage/938921?awesome=1",
"https:///website.com//coolpage//938921//"
];
for (let i = 0; i < urls.length; i++) {
const u = getBaseUrl(urls[i]);
console.log(`${i}: ${u}`);
}
控制台输出:
0: website.com/coolpage/9389211: website.com/coolpage/9389212: website.com/coolpage/9389213: website.com/coolpage/9389214: website.com/coolpage/9389215: website.com/coolpage/9389216: website.com/coolpage/938921
关于javascript - JS : Convert URL into its simplest form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54472715/
我希望制作最简单的内容 slider 。 我不需要插件...我只是想要一种简单的方法来根据下一个/上一个按钮左右滑动几个 div。 不过,如果我搬起石头砸自己的脚,我只会使用插件。 :) 最佳答案 我
我正在尝试完成碰撞检测。我没有使用 OpenGl,我使用的是 canvas/surfaceview。 我有 2 个位图。到目前为止,这是我得出的结论: public boolean inBounds(
我想得到 Hy! 在 Hylang 中,我如何执行简单的 Python 循环: for i in range(5): print(i) 最佳答案 tutorial提供了这个例子: (for [
使用两台不同的计算机,我必须实现发送方和接收方算法来发送和接收帧。我是一名实力雄厚的程序员,但对网络编程和 python 相对较新。算法如下。 发件人站点算法: while(true) { W
我正在尝试做一个非常简单的 UINavigationController 示例。这是我的代码: - (void)viewDidLoad { [super viewDidLoad]; 下一行有效,或
我正在构建一个 NodeJS 应用程序,可以将 URL 存储在数据库中。我想使用 URL 作为主键,以避免存储重复项。为了做到这一点,我需要 url 尽可能采用最简单的形式,删除多余的斜杠、参数和前缀
我正在使用来自 snook.ca (http://snook.ca/archives/javascript/simplest-jquery-slideshow) 的“最简单的 jQuery 幻灯片”,
我是 angularJS 的新手,我试图让简单的东西起作用,但我失败了。 HTML:
目前我有通常的 Controller / Action 结构: 博客 Controller : /blog/list /blog/create /blog/detail/my-blog-hash
我正在使用 Meteor 的帐户-ui。有没有办法在不编写自定义帮助程序代码的情况下检查用户是否已登录模板? 伪代码: {{#if userIsLoggedIn }} You're logge
使用 C++、OS=Windows 对文件夹(及其子文件夹)的所有 .mp3 文件进行循环的最短解决方案是什么?如果可能,我想避免使用第 3 方的东西,例如 boost,但如果不可能,我会使用这些第
我有一个非常简单的 vue 项目: Text Breakdown Breakd
我见过的最小的幻灯片。 $(function(){ $('.fadein img:gt(0)').hide(); setInterval(function(){ $('.f
我正在尝试使用 Rythm template engine在 Google App Engine/Java 开发服务器 (GAE/J) 上。这是一个简单的安装,除了 Rythm 之外什么都没有添加到基
我想定义一个函数template T constCast(const ScriptVar_t& s); .取决于T ,我想有不同的定义。 (ScriptVar_t 是一个类,但细节在这里并不重要。)
在我意识到导航按钮是必需的之前,我有一个相当大的应用程序,其中所有 View Controller 都通过 Storyboard连接连接。我现在无法再删除所有场景并重新开始,也无法扩展 segue 方
我在使用 nodeclipse 时遇到问题:我什至无法运行最简单的演示应用程序(简单需要 http)。当我尝试将“app.js”作为 Node 应用程序运行时,我得到: Node.js Process
问题: 使用 Core Text 获取给定文本行边界的最简单准确方法是什么? 问题: 我尝试了多种技术,但得到的结果不一致。 上下文: 我一直在努力弄清楚如何找到目前单行文本的实际范围。 Core T
我有一个使用 valueObject 的模板,它可能是两种风格之一,具体取决于它在我们的应用程序中的使用位置。所以我将它作为一个导入它: valueObject: Either[ ObjectA, O
在 PhoneGap 中将简单字符串备份(和检索)到云的最佳、最简单和最快的方法是什么?我已成功将整个 localStorage 对象导出为字符串。现在我只想在用户打开应用程序时将此字符串备份到云端,
我是一名优秀的程序员,十分优秀!