javascript - 如何使用正则表达式在全文中查找 URL

标签 javascript regex

以下正则表达式有什么问题,它在许多在线 JavaScript 正则表达式测试器(和 RegEx Buddy)中有效,但在我的应用程序中不起作用?

它的目的是用超链接替换 ​​URL。 Javascript 可在 javascript 文件中找到。

var fixed = text.replace(/\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]/ig, "<a href='$&' target='blank'>$&</a>");

例如,Chrome 会提示 & 无效(IE8 也是如此)。有没有办法在不诉诸 RegEx 对象的情况下转义 & 符号(或其他错误)?

最佳答案

这些测试器允许您以其原始形式输入正则表达式,但是当您在源代码中使用它时,您必须以字符串文字或(如此处的情况)正则表达式文字的形式编写它。 JavaScript 使用正斜杠作为其正则表达式文字分隔符,因此您必须转义正则表达式本身中的任何斜杠以避免解释器混淆。

一旦你逃脱了斜杠,它应该停止提示&符号。这很可能是由格式错误的正则表达式文字引起的。

我认识这个正则表达式,前几天我自己也用过它;你是从 RegexBuddy 的图书馆得到的,不是吗?如果您使用 RB 的“使用”功能来创建与 JS 兼容的正则表达式,它会为您转义斜杠。

关于javascript - 如何使用正则表达式在全文中查找 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498779/

相关文章:

javascript - 组合用引号分隔的字符串

javascript - json 数组需要基于 angularjs 应用程序中包含时间的文本进行格式化

javascript - 如何在 react native 或 JS 中解码特殊字符或 HTML 实体?

sql - 如何通过在连接子句中使用子字符串函数在 Big Query 中执行两个表之间的连接

java - 如何使用前面没有转义字符的字符分割java字符串

mysql - 如何编写一个 mysql 语句,其中列出以字符列表的字母开头的元素?正则表达式

iphone - iphone sdk 应用程序的最佳正则表达式库?

javascript - 如何将 React 组件添加到现有的 Django 项目

javascript - AngularJS 'Cannot read property ' 然后'未定义'

PHP正则表达式检测url是否指向图片文件