javascript - 如何使用以下字符串中的正则表达式来获取 url

标签 javascript regex

给定以下字符串,我可以使用什么正则表达式来仅提取 URL(我不需要引号)?

<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281438586869.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439101401.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439283119.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439479213.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440090151.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440244369.jpg\" /> \r\n</p>

最佳答案

您要查找的是/(\/.*?\.\w{3})/g:

var string = '<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281438586869.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439101401.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439283119.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439479213.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440090151.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440244369.jpg\" /> \r\n</p>';

console.log(string.match(/(\/.*?\.\w{3})/g));

分解:

  • \/ 匹配正斜杠,用反斜杠转义
  • .* 匹配 0 或更多非换行符
  • \. 匹配一个点,用反斜杠转义
  • \w{3} 恰好匹配三个“单词”字符(字母数字或下划线)
  • g 标志表示正则表达式应匹配所有出现的地方

<强> .match 返回一个数组,您可以通过简单地指定索引或迭代循环来提取各个字符串(不带引号):

var string = '<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281438586869.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439101401.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439283119.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281439479213.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440090151.jpg\" /> \r\n</p>\r\n<p>\r\n\t<img alt=\"\" src=\"/upload/201704/28/201704281440244369.jpg\" /> \r\n</p>';

var matches = string.match(/(\/.*?\.\w{3})/g);
for (var i = 0; i < matches.length; i++) {
  console.log(matches[i]);
}

希望这有帮助! :)

关于javascript - 如何使用以下字符串中的正则表达式来获取 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45725917/

相关文章:

javascript/jquery 打印方法设置页边距不起作用

regex - 环视是否会影响正则表达式可以匹配哪些语言?

javascript - 小书签中的字符串操作与控制台中的行为不同

regex - 根据正则表达式对 Mongodb find() 输出进行排序

PHP:从字符串中获取 URL 的正则表达式

python - 从特定位置提取数据,无论空格如何

javascript - 样式化和折叠无序列表

javascript - 触摸设备中的 VideoJS 播放器覆盖按钮

javascript - Underscore.js 中的 _() 函数(对象包装器)如何工作?

php - 将 AJAX 值返回到 Javascript 变量