regex - 获取与正则表达式匹配的字符串的值
问题描述
如何替换与打字稿中的正则表达式匹配的字符串
这是我的正则表达式,与给定模式匹配的字符串应该像代码中一样被替换
let formattedString = result.replace(/^<p>(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?/img, '<p><a href=$1 target="_blank" style="cursor:pointer">$1</a>');
我的结果是 -<p>demo.test.io</p>
现在我想把这个替换为 -<p><a href="demo.test.io" target="_blank">demo.test.io</a></p>
谢谢
解决方案
您可以通过匹配协议和可选的 s 和可选的 www 来稍微简化模式。
然后使用模式的第一部分并替换最后的可选部分,匹配除尖括号之外的任何字符。
请注意将双引号放在第 1 组周围。
^<p>((https?:\/\/(?:www\.)?)?[a-z0-9]+(?:[-.][a-z0-9]+)*\.[a-z]{2,5})[^<>]*<\/p>
let result = "<p>demo.test.io</p>";
let formattedString = result.replace(/^<p>((https?:\/\/(?:www\.)?)?[a-z0-9]+(?:[-.][a-z0-9]+)*\.[a-z]{2,5})[^<>]*<\/p>/img, '<p><a href="$1" target="_blank" style="cursor:pointer">$1</a>');
console.log(formattedString);
推荐阅读
- python - 熊猫:如何根据不同的单元格将熊猫中的值从数据帧复制到另一个数据帧
- oracle-sqldeveloper - 两个数据库顶部的集成/元数据层 - Oracle SQL Developer
- javascript - 登录 Firebase React Native Expo 后无法获取用户数据
- flutter - 项目中使用的 Flutter 版本
- asp.net-core - 无法识别引导带的默认版本
- ag-grid - 第一个字母总是用英文写的
- javascript - Chrome 和 Safari 关闭选项卡事件未在 vue 应用程序中触发
- elasticsearch - Elasticsearch,更新apm的索引管理策略
- emacs - 找不到 Mu4e (emacs)
- jupyter-notebook - JupyterLab:如何从 Javascript 前端触发对 python 后端的回调函数