javascript - 如何正确地将这个正则表达式分成两行?

标签 javascript regex

我有一个正则表达式来检查字符串是否是 URL:

const regex = /(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/

我尝试过这个:

const regex = '/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?' + // eslint-disable-line
'(\/|\/([\w#!:.?+=&%!\-\/]))?/' // eslint-disable-line

但是正则表达式不再匹配。与此相同:

const regex = new RegExp(['/(http|https):\/\/(\w+:{0,1}\w*)?(\S+)(:[0-9]+)?', // eslint-disable-line
'(\/|\/([\w#!:.?+=&%!\-\/]))?/'].join('')) // eslint-disable-line

这样做的正确方法是什么?

编辑:

示例字符串:http://vrcam-10065475.image.myqcloud.com/7a88620cb5ec7eb90164.jpg?imageView2/2/w/600/h/600/q/100/format/jpg

最佳答案

尝试一下:

var regex = RegExp(
  "(http|https)://(\\w+:{0,1}\\w*)?(\\S+)(:[0-9]+)?" +
  "(/|/([\\w#!:.?+=&%!-/]))?"
);

Run the sample here

关于javascript - 如何正确地将这个正则表达式分成两行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648632/

相关文章:

javascript - 如何解码 HTML 中的 base64 html?

javascript - 如何从 jQuery 的 $.ajax() 函数调用 servlet

javascript - 使用 Promise 和 Parse Javascript 代码来避免异步任务

Java正则表达式提取特定单词

javascript - 带有 className 的可拖动 div

javascript - 什么是验证诸如 mm/yyyy 之类的日期格式的正则表达式?

PHP - 正则表达式删除引号并添加大括号?

javascript - imacros 从提取的文本中剪切 txt 的一部分

java - 如何在Java中使用RegEx模式检查LinkedIn Web链接?

c++ - Qt - 拆分 QString,使用几种类型的空格作为分隔符