如何测试 URL 字符串是绝对字符串还是相对字符串?

2024-01-10

如果 URL 是 Javascript 或 jQuery 中的相对路径或绝对路径,如何测试它?我想根据传入的 URL 是本地路径还是外部路径进行相应处理。

if (urlString starts with http:// or https://)
 //do this

FAST

如果您只需要测试http:// or https://那么最有效率的 way is:

if (urlString.indexOf('http://') === 0 || urlString.indexOf('https://') === 0)

普遍的

不过,我建议一个更通用、不区分大小写、与协议无关方法:

var r = new RegExp('^(?:[a-z+]+:)?//', 'i');
r.test('http://example.com'); // true - regular http absolute URL
r.test('HTTP://EXAMPLE.COM'); // true - HTTP upper-case absolute URL
r.test('https://www.exmaple.com'); // true - secure http absolute URL
r.test('ftp://example.com/file.txt'); // true - file transfer absolute URL
r.test('//cdn.example.com/lib.js'); // true - protocol-relative absolute URL
r.test('git+ssh://example.con/item'); // true - absolute URL with '+' in scheme
r.test('/myfolder/test.txt'); // false - relative URL
r.test('test'); // false - also relative URL

解释正则表达式

^(?:[a-z+]+:)?//

^- 字符串的开头
(?:- 非捕获组的开始
[a-z+]+- 'a' 到 'z' 或“+”中的任何字符 1 次或多次
:- 字符串(冒号字符)
)?- 非捕获组的末尾。组出现 0 或 1 次
//- 字符串(两个正斜杠字符)
'i'- 不区分大小写的标志

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何测试 URL 字符串是绝对字符串还是相对字符串? 的相关文章

  • Imperavi Redactor 内容未复制到隐藏文本区域

    我正在尝试使用因佩拉维编辑器 http imperavi com redactor 在这里控制我的富文本编辑 div class control group div class controls div div document ready
  • 如何防止缓慢脚本警告并强制浏览器继续运行脚本直到完成?

    更新 2013 年 7 月 5 日 自从我最初问这个问题以来 我学到了很多东西 在下面的一条评论中 有人建议我重新处理该任务 并找到一种方法来解决它 而不会有阻塞 UI 的风险 我说不可能 函数必须按原样运行 我实际上不记得我试图用这个函数
  • Cordova - 已弃用尝试访问非导航器对象上的属性“userAgent”

    我正在尝试让我的 Cordova iPhone 应用程序在 iOS 8 1 中运行 在 7 中工作正常 从 8 开始出现以下错误 Deprecated attempt to access property userAgent on a no
  • ajax 页面上的超大插件

    我需要在我的 ajax 页面上使用超大插件 但我认为超大型没有任何破坏功能 当我调用下面的函数时 如何再次设置超大尺寸 解决方案 if supersized vars slideshow interval clearInterval sup
  • 与玻璃钢战斗

    我读过有关 FRP 的内容 非常兴奋 它看起来很棒 因此您可以编写更多高级代码 并且一切都更加可组合 等等 然后我尝试用数百个 sloc 从纯 js 到 Bacon 重写我自己的小游戏 我发现 我实际上不是编写高级纯逻辑代码 而是击败了 B
  • Node.JS Web 服务器中的安全性

    所以 我正在学习 Node JS 到目前为止我很喜欢它 我已经有几个项目在工作了 我想我可以在其中使用nodejs 不过 我担心安全问题 如果我使用 Node JS http 模块编写自定义 Web 服务器 我是否可能非常容易受到攻击 Ap
  • 更改导航栏悬停时 div 的背景图像

    我正在开发一个项目 我对 Javascript 很陌生 所以我想知道是否有 Jquery 代码或只是一个关于如何使背景图像在导航菜单悬停时更改的过程 例如将鼠标悬停在链接一上会将 div 的背景图像更改为图像 1 将鼠标悬停在链接二上会将
  • 删除 CSS Transitionend 事件侦听器不起作用

    我在尝试删除 css Transitionend 事件侦听器时遇到问题 我可以添加监听器 e addEventListener transitionend function event transitionComplete event pr
  • JavaScript 中的自定义“确认”对话框?

    我一直在开发一个使用自定义 模式对话框 的 ASP net 项目 我在这里使用吓人引号 因为我知道 模式对话框 只是我的 html 文档中的一个 div 它被设置为出现在文档其余部分的 顶部 而不是真正意义上的模式对话框 在网站的许多部分
  • Google Apps 脚本:如何水平对齐 inlineImage

    我有以下代码 它是一个更大程序的一部分 我正在尝试将图像从我的 Google 驱动器插入到 Google 文档中 并调整其大小并居中 到目前为止 我能够让程序插入图像并调整其大小 但我不知道如何使 inlineImage 居中 我是使用谷歌
  • 如何在 Android 设备(平板电脑和手机)方向更改时获得正确的窗口宽度

    我正在尝试使用 jquery 函数计算 Android 设备方向变化时的窗口宽度 window outerWidth true 此计算给出了两个方向变化的正确宽度iphone and ipad但在安卓中不行 如果我最初以横向模式或纵向模式加
  • jQuery:将 json 响应的编码设置为 utf8

    我收到了 json 格式的 jQuery 响应 逻辑工作正常 但我无法让他正确编码数据 如 我搜索并发现this https stackoverflow com questions 26620 how to set encoding in
  • 动态多个延迟 jQuery Ajax 调用

    使用 jQuery 的延迟模式http api jquery com jQuery when http api jquery com jQuery when 我正在尝试进行多个 jsonp ajax 调用并等待结果 然后再进行下一步 我可以
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 如何使用 Browserify 获取 html 模板

    我正在尝试找出一种简单的方法 在脚本中需要 html 模板 然后从 CLI 运行 browserify 假设我想获取一个模板并将其附加到正文中 index js var template require template html docu
  • JavaScript 不是 DOM 的一部分吗?

    为什么即使从 DOM 中删除用于创建脚本的代码 脚本仍然可以运行 我遇到了一种情况 我想阻止损坏的脚本运行 查看我的帖子 https stackoverflow com questions 2685581 is there a way to
  • CasperJS:如何单击所有选定的按钮?

    我正在尝试使用 CasperJS 作为网络抓取工具 并且有一个带有按钮的页面 单击该按钮将加载数据 因此 我想先单击所有这些按钮 然后等待 然后再实际进行查询以获取所有必要的数据 问题是对于 Casper casper thenClick
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • jquery .slideToggle() 水平替代方案?

    SlideToggle 正是我想要的 只是我希望幻灯片是水平的 我现在有一个水平隐藏 显示和点击动画 但我想要切换选项 这样 当我单击活动链接时 它将播放反向动画并隐藏自身 最好的方法是什么 您可以使用animate方法 element a
  • 如何通过 jQuery onblur 提交表单

    所以我尝试通过 jQuery onblur 提交表单 即一旦焦点离开密码字段 表单就会通过 jQuery 提交 有类似的问题 但这不是我要找的 我尝试使用 document getElementById 但它不起作用 任何帮助表示赞赏 提前

随机推荐

  • 为什么以及何时在 asp.net 中重写和使用 OnPreRender

    我正在编写由另一位开发人员编写的代码 如下所示 protected override void OnPreRender EventArgs e PopulateGrid base OnPreRender e 我会打电话给PopulateGr
  • BroadcastReceiver和Activity之间的通信 - android

    我的应用程序中有一个广播接收器 每次用户接到来电时都会触发该接收器 现在 当它发生时 我需要广播接收器在特定活动中调用特定方法 现在 我试图使这个方法成为静态的 从而可用 但有些东西告诉我这是一个非常糟糕的主意 因此 我尝试在我的活动中实例
  • 如何在倒排索引结构中搜索短语查询?

    如果我们想在倒排索引结构中搜索像 t1 t2 t3 这样的查询 t1 t2 t3必须排队 我们应该采取哪些措施 1 首先我们搜索 t1 术语并找到包含 t1 的所有文档 然后对 t2 和 t3 执行此操作 然后找到 t1 t2 和 t3 位
  • 从 visio 检测 IE 上的事件

    我可以在 IE 页面上的按钮和 visio 事件之间建立链接吗 例如 只需单击 IE 页面上的按钮即可更改形状的颜色 除非您也可以访问 IE 中的 HTML 内容 否则这并不容易 但是您可以使用 VBA 类 该类实现 withevents
  • 控制狂:提交被拒绝。 Bitbucket 中不允许 Foxtrot 合并

    究竟是什么原因Control Freak Commit rejected Foxtrot merges not allowed 我们经常收到此错误 这是由于以下原因的组合造成的pull rebase and amend用户在提交时 需要明确
  • 在自定义组件中,在样式标签中加载样式更快还是使用链接标签更快?

    我正在开发一些自定义组件 我想知道在模板内的样式标签中加载样式或使用链接标签是否是最佳实践 rel stylesheet 来调用样式 使用样式标签 const template document createElement template
  • 用 OCaml 编写解释器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在大学学习一门课程 要求我从操作语义开始 用 OCaml 编写一种语言的解释器 不幸的是 除了课程
  • Objective-C 接口的前向声明

    我如何转发声明这个对象 interface MyClass NSObject
  • Node.js 和 Microsoft SQL Server

    有什么方法可以让我的 Node js 应用程序与 Microsoft SQL 进行通信吗 我还没有见过任何 MS SQL 驱动程序吗 我正在将一个非常简单的应用程序放在一起 并且需要能够与现有的 MS SQL 数据库进行通信 否则我会使用
  • 使用 Google 脚本将图像保存到电子表格

    我正在尝试使用 jSignature 将签名板添加到 Google 表格 我添加了一个记录签名的对话框 如下所示 Code gs function showDialog var html HtmlService createHtmlOutp
  • 无法通过android NDK(camera2 api)获取相机列表

    尝试使用 Qt5 12 3 和 android ndk 构建应用程序 但无法通过 ACameraManager getCameraIdList 获取相机列表 手机 索尼 xperia XA1 Ultra Qt 5 12 3 NDK r19c
  • “ngserve”命令适合生产吗?

    我正在使用 Angular 7 构建一个小项目 当你运行时 ng serve NodeJS 服务器启动来处理请求 每个请求是否会阻塞直到处理完成 我们正在尝试评估在生产中使用它与使用更传统的应用程序服务器相比有多有效 Run build p
  • Kotlin:对以函数作为参数的函数进行单元测试

    我有一个从存储库中检索项目列表的函数 我没有使用常规回调 而是传入一个函数并使用结果调用它 但是如何对这种功能进行单元测试呢 是否有某种方法可以验证传入的函数是否正在被调用 或者我应该重构并使用常规回调并使用模拟回调接口对其进行测试 My
  • 如何从 HTML 中获取所有 标记之间的数组中的文本?

    我想在所有之间获取数组中的文本 span span 来自 HTML 的标签 我尝试过使用此代码 但它只返回一次 preg match span lt span gt is row tbl highlighted icon content m
  • 用于分配分片索引的 Zookeeper

    我在网上看到过一些关于使用 Zookeeper 在服务器上线时为其分配分片编号的帖子 假设您正在跨集群对数据进行分片 但我一生都找不到如何执行此操作的 Java 代码示例 有人已经可以使用这个了吗 谢谢 跨集群分片数据有很多细节 例如复制和
  • Numpy 数组:序列太大

    我有一个大小的数组11称为 波长 和更大的尺寸数组n称为 MN 而 模型 是一个m by n array 我正在这样做 for i in xrange 10 len wavelength 2 y np empty model MN i fl
  • 如何使用“chosen.js”插件在 MVC 3 中实现多重选择

    如何实施chosen http harvesthq github io chosen MVC 3 的插件 对于这种类型的输出 这是我的代码 如何使 selected js 与 javascript MVC 一起工作 这是我的下拉列表的代码
  • 如何覆盖android中的操作栏后退按钮?

    我想自定义操作栏中的活动后退按钮 而不是硬键后退按钮 我已经覆盖了onBackPressed 方法 它适用于我的模拟器后退按钮 但不适用于操作栏后退按钮 我希望它能通过操作栏发生 我怎样才能做到这一点 这是我的代码 Override pub
  • ServiceWorker更新后如何刷新页面?

    我查阅了很多有关 Service Workers 的资源 更新您的 ServiceWorker https jakearchibald com 2014 using serviceworker today updating your ser
  • 如何测试 URL 字符串是绝对字符串还是相对字符串?

    如果 URL 是 Javascript 或 jQuery 中的相对路径或绝对路径 如何测试它 我想根据传入的 URL 是本地路径还是外部路径进行相应处理 if urlString starts with http or https do t