如何使此字符串文本
first video link: https://www.youtube.com/watch?v=123456
second video link: https://www.youtube.com/watch?v=8123123`;
成为
first video link:
<a href="https://www.youtube.com/watch?v=123456">
https://www.youtube.com/watch?v=123456
</a>
second video link:
<a href="https://www.youtube.com/watch?v=8123123">
https://www.youtube.com/watch?v=8123123
</a>
我写了一个正则表达式来解析链接
这是我所拥有的。
<script type="text/javascript">
var myString =`first video link: https://www.youtube.com/watch?v=123456
second video link: https://www.youtube.com/watch?v=8123123`;
var myRegexp = /(https|http)?://[S]+/g;
var match = myRegexp.exec(myString);
console.log(match[0]) // https://www.youtube.com/watch?v=123456
</script>
使用以下解决方案:
var myString = "first video link: https://www.youtube.com/watch?v=123456nsecond video link: https://www.youtube.com/watch?v=8123123";
var myRegexp = /https?://S+/g;
var match = myString.replace(myRegexp, '<a href="$&"><br> $&<br></a>');
document.body.innerHTML = match;
https?://S+
将匹配http
,然后是可选的s
,然后是://
,然后S+
将匹配一个或多个非空格符号。整个匹配值可以通过$&
反向引用插入到String#replace()
替换模式内的结果字符串中。
有关如何访问 myRegexp 的所有匹配项的详细信息,请参阅检索正则表达式的所有匹配项。您的示例代码看起来像字符串处理,通过处理源 html 文档的元素或处理字符串并将结果贡献到文档中,您的问题可能会得到正确解决。
document.createElement('a').href=match[0];
提示:您的正则表达式(/(https|http(?://[\S]+/g( 也匹配 "://not.an.url"。只需将"https"的"s"标记为可选,要么在表达式的可选协议部分包含"://"。