gpt4 book ai didi

javascript - 从文本中提取 URL 的正则表达式(带/不带协议(protocol)和 www 或子域)

转载 作者:行者123 更新时间:2023-11-29 10:42:17 26 4
gpt4 key购买 nike

我想从元素内的文本中提取 URL。我对正则表达式不是很好,但这是我到目前为止所做的:

var regexp = /((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/i;

请检查这个 fiddle ,看看我的正则表达式是如何工作的:http://jsfiddle.net/h70mr1zt/5/

这是我需要的结果:

 1. stackoverflow => not found
2. stackoverflow.com => found => stackoverflow.com
3. www.stackoverflow.com => found => www.stackoverflow.com
4. api.stackoverflow.com => found => api.stackoverflow.com
5. http://www.stackoverflow.com => found => http://www.stackoverflow.com
6. foo://www.stackoverflow.com => found => www.stackoverflow.com
7. someone@stackoverflow.com => not found
8. .com => not found

如您所见,我几乎把所有东西都弄对了,除了数字 7,它识别电子邮件地址的域部分。

最佳答案

你可以使用像这样的正则表达式

^(http:\/\/)?(www\.)?\w+\.(com|net|org)$

看例子

http://regex101.com/r/uQ9aL4/1

它是如何工作的?

^ 将正则表达式锚定在行的开头。

(http:\/\/)? 计算 0 或 1 次 http://

(www\.) 匹配 0 次或 1 次出现的 www.

\w* 计算任意数量的字母数字

.(com|net|org)$ 匹配 .com.net.org

$ 将正则表达式锚定在字符串的末尾。

关于javascript - 从文本中提取 URL 的正则表达式(带/不带协议(protocol)和 www 或子域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26479889/

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