【发布时间】:2013-06-18 20:26:29
【问题描述】:
在包含大量以下 url 标记的字符串中 -
[http://www.someurl.com/path/to/resource/?some=params&crazy_chars=true_0_1_0_1]
我想要捕获并转换成的
<a href="http://www.someurl.com/path/to/resource/?some=params&crazy_chars=true_0_1_0_1" target="_blank" class="exturl">http://www.someurl.com/path/to/resource/?some=params&crazy_chars=true_0_1_0_1</a>
因此,方括号内的所有 url 都将被搜索并替换为元素的内联 url。当前我发现 URL 模式的正则表达式为 -
RegExp("\[(http|ftp|https)://[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?\]", "gi");
但我仍然不清楚如何在单程中做到这一点。我必须循环直到找不到匹配器吗?
【问题讨论】:
-
方括号中会不会有不是url的文字?
-
是的,方括号中还有其他不是URL的文本,例如[@ID:2492395]
-
http://example.iana.org/]是一个有效的 URL。http://example.iana.org/[foo]也是如此 -
哦,我不知道 URL 可以将 [] 作为有效字符。对于这个问题,假设 URL 没有 []。
-
它是一个大字符串/文本,其中包含 [] 中的所有这三个变体并且任意次数。
标签: javascript regex text