Php 关于正则表达式代码的帮助

Php 关于正则表达式代码的帮助,php,regex,url,Php,Regex,Url,我有这个正则表达式代码 /^(https?:\/\/+[\w\-]+\.[\w\-]+)/i 这是可行的,但有一个问题 您需要在url中添加http://以进行验证,我正在制作的内容是,用户不希望将http://添加到他们想要的url中,只要有example.com,如果可能的话,我需要它在有http://或没有http://的情况下工作 我不知道如何制作我自己的正则表达式,我搜索过但找不到一个能满足我需要的正则表达式,除非我只是找不到合适的地方。(谷歌:P)/^((https?:\/\/+)

我有这个正则表达式代码

/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i
这是可行的,但有一个问题 您需要在url中添加http://以进行验证,我正在制作的内容是,用户不希望将http://添加到他们想要的url中,只要有example.com,如果可能的话,我需要它在有http://或没有http://的情况下工作

我不知道如何制作我自己的正则表达式,我搜索过但找不到一个能满足我需要的正则表达式,除非我只是找不到合适的地方。(谷歌:P)

/^((https?:\/\/+)?[\w-]+.\w-]+)/i

/^((https?:\/\/+)?[\w-]+.\w-]+/i

您可以将其设置为可选

/^((?:https?:\/\/+)?[\w\-]+\.[\w\-]+)/i
您不想要的零件周围的
(?:)
是非捕获组,之后的
使其成为可选组

我不确定第二个斜杠后面的
+
有什么用,它至少表示前面的一个字符。这意味着它还允许
http://////////

我希望您知道,这个正则表达式远远不能匹配有效的URL

例如,它将匹配以下内容

http://////////------------.-
或者至少

http://N.O
          ^ after this position you can write what you want and it will match valid.
您可以看到您的正则表达式匹配的内容


请参阅紫色编码器的答案,以获得可能更好的解决方案。

您可以将其设置为可选

/^((?:https?:\/\/+)?[\w\-]+\.[\w\-]+)/i
您不想要的零件周围的
(?:)
是非捕获组,之后的
使其成为可选组

我不确定第二个斜杠后面的
+
有什么用,它至少表示前面的一个字符。这意味着它还允许
http://////////

我希望您知道,这个正则表达式远远不能匹配有效的URL

例如,它将匹配以下内容

http://////////------------.-
或者至少

http://N.O
          ^ after this position you can write what you want and it will match valid.
您可以看到您的正则表达式匹配的内容

请参阅紫色编码器的答案,以获得可能更好的解决方案。

我使用的是:

//验证字符串是否至少包含一个点

var filterWebsite =  /^([a-zA-Z0-9:_\.\-/])+\.([a-zA-Z0-9_\.\-/])+$/;
我用这个:

//验证字符串是否至少包含一个点

var filterWebsite =  /^([a-zA-Z0-9:_\.\-/])+\.([a-zA-Z0-9_\.\-/])+$/;

不要为正则表达式操心。使用函数。

不要麻烦使用正则表达式。使用函数。

可能的重复