gpt4 book ai didi

javascript - 用于拆分包含文本和 url 的字符串的正则表达式

转载 作者:行者123 更新时间:2023-11-30 10:14:14 24 4
gpt4 key购买 nike

我有如下输入字符串:

[URL=http://...]Lorem ipsum[/URL]

它们应该在 HTML 标签中转换:

<a href="http://...">Lorem ipsum</a>

例子:

[URL=http://domain.com]My Awesome Link Text[/URL]

这应该转换成:

<a href="http://domain.com">My Awesome Link Text</a>

我尝试使用正则表达式拆分字符串:

> a = "[URL=http://domain.com]My Awesome Link Text[/URL]"
'[URL=http://domain.com]My Awesome Link Text[/URL]'
> s = a.split(/\[|\]|=/)
[ '',
'URL',
'http://domain.com',
'My Awesome Link Text',
'/URL',
'' ]
> o = "<a href=\"" + s[2] + "\">" + s[3] + "</a>"
'<a href="http://domain.com">My Awesome Link Text</a>'

这适用于在其 url 中不包含 = 的链接。但是当我们有查询字符串参数时,事情就变得复杂了:

> a = "[URL=http://domain.com?param=value]My Awesome Link Text[/URL]"
'[URL=http://domain.com?param=value]My Awesome Link Text[/URL]'
> s = a.split(/\[|\]|=/)
[ '',
'URL',
'http://domain.com?param',
'value',
'My Awesome Link Text',
'/URL',
'' ]
> o = "<a href=\"" + s[2] + "\">" + s[3] + "</a>"
'<a href="http://domain.com?param">value</a>'

如何拆分这样的字符串,但不拆分url中的=

最佳答案

图案:

^.*?\[URL=([^\]]*)\]([^\[]*).*$

替换:

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

在 JavaScript 中:

> "[URL=http://domain.com?asd=a]My Awesome Link Text[/URL]".replace(/^.*?\[URL=([^\]]*)\]([^\[]*).*$/, '<a href="$1">$2</a>')
'<a href="http://domain.com?asd=a">My Awesome Link Text</a>'

DEMO

关于javascript - 用于拆分包含文本和 url 的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24819610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com