Javascript URL 正则表达式仅从 www. 或 http(s):// 开始



感谢您的帮助!

我希望使用 javascript 将字符串中的 url 转换为<a href="url">url</a>

我有以下正则表达式:

/https?://(www.)?[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,4}b([-a-zA-Z0-9@:%_+.~#?&//=]*)/gi

这似乎适用于任何以http://https://http://www.https://www.开头的 URL。

但是,它不适用于仅以www开头的网址:www.url.com

如何修改正则表达式以处理以下内容:

http://
https://
http://www.
https://www.
www.

再次感谢您的帮助!祝你有美好的一天!

您可以使用交替

(?:https?://(www.)?|www.)[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,4}b([-a-zA-Z0-9@:%_+.~#?&/=]*)

const regex = /(?:https?://(www.)?|www.)[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,4}b([-a-zA-Z0-9@:%_+.~#?&/=]*)/i;
const strs = ['http://example.com','https://example.com','http://www.example.com','https://www.example.com','www.example.com','example.com']
strs.forEach(str=>{
console.log(str, '  |   ', regex.test(str))
})

Regex Demo

如果您希望example.com也匹配,则可以(?:https?://)?可选

(?:https?://)?(www.)?[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,4}b([-a-zA-Z0-9@:%_+.~#?&/=]*)

相关内容

  • 没有找到相关文章

最新更新