javascript - 有效 url 的正则表达式

标签 javascript regex

我需要验证应该类似于的网址

google.com  or
yahoo.co.uk etc

我的意思是我不需要 http 或 www。 我的正则表达式代码是这样的。但它对我不起作用。

/^[a-zA-Z0-9][a-zA-Z0-9-][a-zA-Z0-9]\.[a-zA-Z]{2,}$/

最佳答案

您当前的正则表达式不起作用,因为它需要 . 之前正好三个字符:首先是与 [a-zA-Z0-9] 匹配的字符,然后匹配 [a-zA-Z0-9-] 的字符,然后匹配 [a-zA-Z0-9] 的字符。您的正则表达式仅允许输入中任意位置出现单个 .

对于可变长度字符串,您需要使用 +*{} 语法,就像您对正则表达式的最后部分所做的那样.

要保持与您似乎想要的基本相同的验证,但让它适用于不同的长度,请尝试:

/^[A-Z\d-]+(\.[A-Z\d-]+)*\.[A-Z]{2,}$/i

即:

[A-Z\d-]+ 匹配一个或多个字母、数字或连字符,后跟

(\.[A-Z\d-]+)* 零个或多个点实例,后跟一个或多个这些字符,最后是

\.[A-Z]{2,} 最后一个点包含两个或多个 A-Z。

请注意,如果您将 i 标志添加到正则表达式以使其不区分大小写,则只需使用大写的 A-Z 范围即可。

关于javascript - 有效 url 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337453/

相关文章:

.net - 是否有正则表达式返回相同字符重复的匹配项?

regex - Bash:用于查找具有双引号的模式的正则表达式

java - 从字符串中提取字段值

javascript - 比较两个字符串数组 Javascript 的最快/最有效的方法

javascript - jQuery Mobile swipeleft 和 swiperright 响应不太灵敏

javascript - Angular 6 Typescript从数组中提取元素并进行比较

C: 带有 MinGW 的正则表达式库

javascript - 是否可以从 javascript 访问 EWS 托管 API

Javascript 事件和 css

c# - 我怎样才能阻止这个正则表达式变得贪婪呢?