有时, 我们必须在 JavaScript 字符串中查找 URL.
在本文中, 我们将了解如何在 JavaScript 字符串中查找 URL 并将它们转换为链接.
我们可以创建自己的函数, 使用正则表达式来查找 URL.
例如, 我们可以这样写:
- const urlify = (text) => {
- const urlRegex = /(https?:\/\/[^\s]+)/g;
- return text.replace(urlRegex, (url) => {
- return `${url}`;
- })
- }
- const text = 'Find me at http://www.example.com and also at http://stackoverflow.com';
- const html = urlify(text);
- console.log(HTML)
我们创建了接受 text 字符串的 urlify 函数.
在函数中, 我们优化了 urlRegex 变量, 该变量具有用于匹配 url 的 regex.
我们检查 http 或 https .
然后我们查找斜杠和文本.
正则表达式末尾的 g 标志让我们可以搜索字符串中的所有 URL.
然后我们用 urlRegex 调用 text.replace 并在回调中返回一个带有匹配 url 的字符串.
因此, 当我们用 text 调用 urlify 时, 我们得到:
'Find me at http://www.example.com and also at http://stackoverflow.com'
我们可以使用更复杂的正则表达式使 URL 搜索更精确.
例如, 我们可以这样写:
- const urlify = (text) => {
- const urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
- return text.replace(urlRegex, (url) => {
- return `${url}`;
- })
- }
- const text = 'Find me at http://www.example.com and also at http://stackoverflow.com';
- const HTML = urlify(text);
- console.log(HTML)
我们搜索 http,https,ftp 和文件 url.
我们还在模式中包含 : , 字母, 与号和下划线.
来源: http://developer.51cto.com/art/202108/679253.htm