regex代码的帮助


help with a regex code

我有这个正则表达式代码

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

它有效,但有问题你需要在url中使用http://来验证它,而我正在做的是,用户不想将http://添加到他们想要的url中,他们只想拥有example.com,如果可能的话,我需要它来工作,不管它是否有http://
我不知道如何制作我自己的regex,我已经搜索过了,但找不到一个能满足我需要的正则表达式,除非我只是找不到合适的地方。(谷歌:P)

不要使用regex。使用parse_url函数。

您可以将其设为可选

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

你不想拥有的零件周围的(?:)是一个非捕获组,之后的?使其成为可选组。

我不确定第二个斜杠后面的+有什么用,它至少说明了前面的一个字符。这意味着它也允许类似http://////////的东西。

我希望您知道,这个正则表达式与有效的URL相去甚远。

例如,它将匹配之类的东西

http://////////------------.-

或至少

http://N.O
          ^ after this position you can write what you want and it will match valid.

在Regexr上,您可以看到您的正则表达式匹配的内容。

请参阅Purple Coder的答案,了解可能更好的解决方案。

/^((https?:''''/''/+)?[''w-]+。[''w-]+)/i

我使用的是:

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

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