我对 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.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?)/g;
str.replace(regex, '<a href="$1">$1</a>');
注意:这是您的正则表达式,我只是转义了正斜杠。
关于javascript - 无法在javascript中测试正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092751/