javascript - 无法在javascript中测试正则表达式

标签 javascript regex

我对 RegExp 非常陌生,我正在尝试实现它来检测字符串中的 url。我想使用的一个正则表达式是这个(请不要提供你自己的):

/(((http|ftp|https)://)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?)/g

并用这个替换所有匹配项:

<a href="$1">$1</a>

如果您访问 http://gskinner.com/RegExr/使用该示例并在替换中使用它,您会发现它可以完美地工作,但不可能在 javascript 中使用它构建一个有效的解决方案。

var text = "hi, demo link http://stackoverflow.com is a great website"
//regexp magic


//expected result:
textWithLink ="hi, demo link <a href="http://stackoverflow.com">http://stackoverflow.com</a> is a great website"

最佳答案

var str = 'hi, demo link http://stackoverflow.com is a great website',
    regex = /(((http|ftp|https):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?)/g;
str.replace(regex, '<a href="$1">$1</a>');

注意:这是您的正则表达式,我只是转义了正斜杠。

关于javascript - 无法在javascript中测试正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092751/

相关文章:

JavaScript 如果计数

javascript - 如何从 html 字符串中获取 head 和 body 标签作为字符串?

regex - 为什么在对 ps 进行 grepping 时,将单个字符括在正则表达式中的括号中会排除 grep 本身?

MySQL - 需要字符串中最大匹配字母的搜索结果

java - 通过java正则表达式验证简单的sql

regex - 带有 Erlang re 模块的多行正则表达式

javascript - 需要使用 FB.Canvas.setSize 调整 Facebook 应用程序和页面选项卡高度大小的帮助

javascript - 使用 javascript 检测域名的重复 URL

javascript - Onmouseover OnMouseout javascript

JavaScript 正则表达式 - 匹配除之外的所有内容